Azure Data Studio - Conectividade do Azure

O Azure Data Studio usa a Biblioteca de Autenticação da Microsoft (MSAL) por padrão para adquirir um token de acesso da ID do Microsoft Entra. As configurações que se aplicam à autenticação do Microsoft Entra são discutidas, juntamente com os problemas comumente observados e suas soluções.

Nota

Embora o Microsoft Entra ID seja o novo nome do Azure Ative Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanece em alguns elementos codificados, como campos de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.

Azure: Biblioteca de autenticação

Essa configuração só está disponível no Azure Data Studio 1.41 a 1.45. Ele não está mais disponível no Azure Data Studio 1.46 e versões posteriores.

Essa configuração controla a biblioteca de autenticação usada pelo Azure Data Studio ao adicionar uma conta do Microsoft Entra. A Biblioteca de Autenticação da Microsoft (MSAL) oferece serviços de autenticação e autorização usando implementações compatíveis com o padrão do OAuth 2.0 e do OpenID Connect (OIDC) 1.0. Leia mais sobre a Biblioteca de Autenticação da Microsoft (MSAL). No Azure Data Studio 1.46 e versões posteriores, o MSAL é a única biblioteca em uso, pois a ADAL (Biblioteca de Autenticação do Ative Directory) foi preterida.

Método de autenticação do Azure

O Azure Data Studio dá suporte à autenticação multifator (MFA) do Microsoft Entra usando os seguintes modos:

  • Usando a autenticação de concessão de código (habilitada por padrão)
  • Usando a autenticação de código de dispositivo

Contas > Azure > Auth: Concessão de código

Settings.json

"accounts.azure.auth.codeGrant": true

Screenshot of Azure authentication Code Grant option.

Quando o método de concessão de código é verificado, os usuários são solicitados a autenticar com autenticação baseada em navegador. Por predefinição, esta opção encontra-se ativada.

Contas > Azure > Auth: Código do dispositivo

Settings.json

"accounts.azure.auth.deviceCode": true

Screenshot of Azure authentication Device Code option.

Quando o método Device Code está habilitado, os usuários recebem um código e uma URL para inserir, que podem ser usados para entrar.

Quando ambas as opções são marcadas, os usuários são solicitados a selecionar um dos dois modos de autenticação ao adicionar uma conta do Microsoft Entra.

Configuração de nuvem do Azure

O Azure Data Studio suporta a autenticação do Microsoft Entra com nuvens nacionais. A Nuvem Pública do Azure está habilitada por padrão, mas os usuários podem habilitar outras nuvens nacionais conforme necessário:

Settings.json

"accounts.azure.cloud.enableChinaCloud": false,
"accounts.azure.cloud.enablePublicCloud": true,
"accounts.azure.cloud.enableUsGovCloud": false

Screenshot of Azure authentication National Clouds.

Pontos de extremidade de nuvem personalizados também podem ser definidos. Consulte Configurando endpoints de nuvem personalizados.

Configuração de recursos do Azure

Essas configurações aplicam filtros em recursos e locatários do Azure.

  • Filtro de configuração de recursos: aplica o filtro de inclusão aos recursos que devem ser exibidos.
  • Filtro de configuração do locatário: aplica o filtro de exclusão aos locatários que devem ser ignorados.

Settings.json

"azure.resource.config.filter": [],
"azure.tenant.config.filter": [
    "313b5f9e-9b92-414c-8d87-a317e42d0222"
]

Screenshot of Azure authentication resource configuration options.

Configuração de proxy para autenticação do Microsoft Entra

Se estiver usando o Azure Data Studio atrás de um proxy, os usuários deverão especificar configurações de proxy para que o Azure Data Studio se comunique com pontos de extremidade externos. Há duas maneiras de fornecer configurações de proxy para o Azure Data Studio usar:

  • Definindo a configuração de proxy no Azure Data Studio (Configurações > http: configurações de proxy)
  • Definindo variáveis de ambiente para configuração de proxy

As configurações do Azure Data Studio têm precedência sobre as variáveis de ambiente.

Configurações de proxy do Azure Data Studio

As seguintes configurações estão disponíveis no Azure Data Studio:

Settings.json

"http.proxy": "https://userName@fqdn:yourPassword@yourProxyURL.com:8080",
"http.proxyStrictSSL": true,
"http.proxyAuthorization": "",
"http.proxySupport" : "override"

Screenshot of Azure authentication proxy settings.

Variáveis de ambiente suportadas para proxy

  • 'HTTP_PROXY': 'http://userName@fqdn:yourPassword@yourProxyURL.com:8080'
  • 'HTTPS_PROXY': 'https://userName@fqdn:yourPassword@yourProxyURL.com:8080'

URLs da lista de permissões

Em um ambiente de proxy, os aplicativos de usuário podem precisar permitir domínios específicos usados pelo Azure Data Studio. Os nomes de host através dos quais você pode precisar ou querer permitir a comunicação são:

Azure Público

  • https://management.azure.com
  • https://login.microsoftonline.com/

Azure (Governo dos EUA)

  • https://management.core.usgovcloudapi.net/
  • https://login.microsoftonline.us/

Azure operado pela 21Vianet

  • https://management.core.chinacloudapi.cn/
  • https://login.partner.microsoftonline.cn/

Os URLs a serem permitidos às vezes podem variar caso a caso. Para verificar se você não está bloqueando a passagem de nenhum URL, vá para Ajuda para alternar Ferramentas de Desenvolvedor e selecione a guia Rede.> Todos os URLs bloqueados são listados, e talvez seja necessário permitir que esses URLs adicionem sua conta com êxito.

Configurando endpoints de nuvem personalizados

O Azure Data Studio 1.46 apresenta suporte para adicionar pontos de extremidade personalizados para nuvens não públicas.

Adicionando endpoints de nuvem personalizados

Abra Configurações no Azure Data Studio (Ctrl/Cmd + Shift + P) e insira Azure: Configurações Personalizadas do Provedor e, em seguida, selecione Editar em settings.json, que abre o settings.json arquivo automaticamente e adiciona:azure.customProviderSettings

Screenshot of azure.customProviderSettings added to settings.json file.

As seguintes entradas são necessárias para que o ponto de extremidade funcione:

  • host
  • clientId
  • scopes
  • sqlResource
  • microsoftResource
  • armResource
  • graphResource
  • azureStorageResource

Um exemplo de entrada JSON para um provedor é apresentado como um guia:

"azure.customProviderSettings": [
    {
        "name": "Azure Custom",
        "settings": {
            "metadata": {
                "displayName": "Azure Custom Cloud",
                "id": "azure_customCloud",
                "endpoints": {
                    "host": "https://hostendpoint.com/",
                    "clientId": "test",
                    "microsoftResource": "https://microsoftresource.com/",
                    "graphResource": "https://graphresource.com/",
                    "msGraphResource": "https://msgraphresource.com/",
                    "armResource": "https://armresource.com/",
                    "sqlResource": "https://sqlresource.net/",
                    "azureKeyVaultResource": "https://azurekeyvault.net/",
                    "azureLogAnalyticsResource": "https://azure.loganalytic.io/",
                    "azureStorageResource": {
                        "endpoint": "",
                        "endpointSuffix": ".azurestorage.net/"
                    },
                    "azureKustoResource": "https://kusto.net/",
                    "powerBiResource": "https://powerbi.net/",
                    "scopes": "https://management.net/scopes",
                    "portalEndpoint": "https://portal.azure.com"
                }
            }
        }
    }
]

Depois de adicionar o ponto de extremidade, salve o settings.json arquivo. O Azure Data Studio notifica você para recarregar o aplicativo. Depois de recarregar, você será notificado de que os pontos de extremidade personalizados foram carregados:

Screenshot after reloading Azure Data Studio indicating custom endpoints have been loaded.

Se essa mensagem não aparecer, verifique se todas as entradas para o ponto de extremidade existem e se estão preenchidas.

Depois de adicionar uma nuvem personalizada, abra o painel Contas vinculadas do Azure e o viewlet de nuvem personalizado será exibido. Selecione Adicionar uma conta e escolha o modo de autenticação, se solicitado. Você é levado ao ponto de extremidade do host para autenticar.

Screenshot of a custom cloud provider in the Azure accounts pane.

Vários provedores de nuvem personalizados

Provedores de nuvem adicionais podem ser adicionados ao settings.json arquivo usando o mesmo formato.

"azure.customProviderSettings": [
    {
        "name": "Azure Custom",
        "settings": {
            "metadata": {
                "displayName": "Azure Custom Cloud",
                "id": "azure_customCloud",
                "endpoints": {
                    "host": "https://hostendpoint.com/",
                    "clientId": "test",
                    "microsoftResource": "https://microsoftresource.com/",
                    "graphResource": "https://graphresource.com/",
                    "msGraphResource": "https://msgraphresource.com/",
                    "armResource": "https://armresource.com/",
                    "sqlResource": "https://sqlresource.net/",
                    "azureKeyVaultResource": "https://azurekeyvault.net/",
                    "azureLogAnalyticsResource": "https://azure.loganalytic.io/",
                    "azureStorageResource": {
                        "endpoint": "",
                        "endpointSuffix": ".azurestorage.net/"
                    },
                    "azureKustoResource": "https://kusto.net/",
                    "powerBiResource": "https://powerbi.net/",
                    "scopes": "https://management.net/scopes",
                    "portalEndpoint": "https://portal.azure.com"
                }
            }
        }
    },
    {
        "name": "Azure Custom 2",
        "settings": {
            "metadata": {
                "displayName": "Azure Custom Cloud 2",
                "id": "azure_customCloud2",
                "endpoints": {
                    "host": "https://hostendpoint.com/",
                    "clientId": "test",
                    "microsoftResource": "https://microsoftresource.com/",
                    "graphResource": "https://graphresource.com/",
                    "msGraphResource": "https://msgraphresource.com/",
                    "armResource": "https://armresource.com/",
                    "sqlResource": "https://sqlresource.net/",
                    "azureKeyVaultResource": "https://azurekeyvault.net/",
                    "azureLogAnalyticsResource": "https://azure.loganalytic.io/",
                    "azureStorageResource": {
                        "endpoint": "",
                        "endpointSuffix": ".azurestorage.net/"
                    },
                    "azureKustoResource": "https://kusto.net/",
                    "powerBiResource": "https://powerbi.net/",
                    "scopes": "https://management.net/scopes",
                    "portalEndpoint": "https://portal.azure.com"
                }
            }
        }
    }
]

Problemas comuns de autenticação

Possíveis problemas e soluções ao adicionar uma conta do Azure são discutidos.

Problema: Erro SSL na página localhost (ERR_SSL_PROTOCOL_ERROR)

Os usuários podem ver um erro SSL ao entrar em suas contas. Esse fluxo abre uma página da Web externa para localhosto , normalmente solicitando que os usuários entrem por meio dos prompts de autenticação padrão da Microsoft. O URL desta página é semelhante ao http://localhost:50055/signin?nonce=...

Alguns navegadores podem ser configurados para redirecionar automaticamente todos os http links para httpso , o que interrompe esse processo, pois o servidor local que serve a página da Web não suporta https. Se o link na barra de endereço começar com https, você receberá um erro SSL e a página não poderá carregar. Nesse caso, as soluções alternativas listadas aqui podem resolver o problema.

Alterar URL para http

Primeiro, altere manualmente o URL de https:// para http://. O navegador pode alterá-lo de volta para https, caso em que é necessário tentar outra opção.

Desativar HSTS (HTTP Strict Transport Security)

Para navegadores Edge/Chrome, você pode desativar o HSTS para localhost.

  1. Abra o Edge/Chrome e, na barra de endereço, digite edge://net-internals/#hsts (ou chrome://net-internals/#hsts para Chrome).
  2. Desloque-se para a parte inferior da página e, na Delete domain security policies secção, introduza localhost e prima Delete.

Quando isso estiver concluído, você poderá fazer login e não fazer com que o navegador redirecione seus localhost links automaticamente para https.

Problema: Não é possível adicionar uma conta atrás de um proxy

Se o aplicativo do usuário estiver sendo executado em um ambiente atrás de um proxy, a autenticação do usuário pode não ser concluída e essas etapas podem ser usadas para resolver o problema.

  1. Verifique novamente as variáveis de ambiente e as configurações http.proxy no Azure Data Studio. Se o proxy exigir autenticação do usuário, fornecer um nome de usuário/senha na URL http.proxy pode resolver problemas de autenticação, caso contrário, o Azure Data Studio não poderá ler as credenciais de usuário conectado. Como alternativa, você pode tentar executar o Azure Data Studio como um usuário diferente, pois isso pode ajudar a resolver problemas de autenticação com proxy. No entanto, este último só funciona para alguns cenários.

  2. Os URLs a serem permitidos podem variar caso a caso. Para verificar se você não está bloqueando a passagem de nenhum URL, vá para Ajuda > para alternar as Ferramentas de Desenvolvedor e selecione a guia Rede. Aqui você vê todos os URLs que estão sendo bloqueados que você pode precisar permitir para adicionar sua conta com êxito.

  3. Desmarque http: Proxy SSL estrito. É possível que o certificado de proxy não seja verificável em relação à lista de CAs confiáveis. A desativação do SSL estrito pode excluir o certificado de proxy como um problema.

Concluindo:

Como um aplicativo de plataforma cruzada, a resolução de proxy do Azure Data Studio busca o proxy de qualquer configuração dentro do aplicativo ou por meio de variáveis de ambiente. O objetivo é evitar a interação com as configurações do sistema, que podem variar significativamente em diferentes sistemas operacionais.

Problema: a extensão Azure Core está desativada

A extensão Azure Core é uma extensão interna no Azure Data Studio. Certifique-se de que não está desativado ou desinstalado acidentalmente. Esta extensão é necessária para autenticar contas do Microsoft Entra e conectar-se a recursos usando MFA.

Screenshot of built-in Azure Core extension.

Problema: os certificados de autoridade de certificação do sistema expiraram

O comportamento padrão do Azure Data Studio inclui a validação de certificados de CA raiz do sistema ao fazer chamadas de API REST usando o Protocolo HTTPS. A validação é controlada com a configuração, que é habilitada http:systemCertificates por padrão:

Screenshot of system certificates setting.

"http.systemCertificates": true

Se o certificado de autoridade de certificação raiz de um sistema tiver expirado, as solicitações de autenticação para o Microsoft Entra ID falharão e um erro será capturado nos logs de conta do Azure:

error: certificate is expired

Para atenuar esse erro, você deve remover todos os certificados de autoridade de certificação raiz expirados ou desabilitar a configuração para não validar certificados do sistema.

Capturar logs para autenticação do Azure

O Azure Data Studio captura eventos de erro para a atividade da conta do Microsoft Entra por padrão. Para habilitar rastreamentos mais detalhados, os usuários podem modificar estas configurações:

Azure: Nível de registo

Essa configuração define o nível de log para informações do núcleo do Azure que podem ser capturadas no Azure Data Studio. Altere-o para Detalhado ou Tudo para capturar logs detalhados que podem ser úteis para diagnosticar falhas de autenticação. Para obter mais informações, consulte Logs e localização do Azure Data Studio para saber como capturar informações de log.

Settings.json

"azure.loggingLevel": "Verbose"

Screenshot of Azure authentication logging Level configuration.

Azure: registo de PII

Os usuários podem habilitar o registro de PII (Informações de Identificação Pessoal) para fins de teste e depuração locais. Essa configuração permite um registro mais completo do processo de autenticação, mas pode conter informações confidenciais, como tokens de acesso ou IDs de usuário ao autenticar com a ID do Microsoft Entra. Como esse registro captura informações confidenciais, é recomendado:

  • Não compartilhe esses logs com mais ninguém, especialmente ao adicionar logs a problemas do GitHub
  • Desative a configuração assim que as informações necessárias forem coletadas
  • Exclua os arquivos de log depois que a configuração for desativada

Settings.json

"azure.piiLogging": true

Screenshot of Azure authentication PII logging option.

Azure: Sem chaveiro do sistema

Esta definição desativa a integração das chaves do sistema para evitar pedidos repetidos de acesso às chaves no macOS. Como alternativa, as credenciais do usuário são armazenadas em um arquivo simples no diretório inicial do usuário.

Settings.json

"azure.noSystemKeychain": true

Screenshot of Azure authentication keychain configuration.

Limpar cache de token de conta do Microsoft Entra

O Azure Data Studio mantém um cache de tokens de acesso para evitar a limitação de solicitações de token para o Microsoft Entra ID. É possível que o cache de token do Azure Data Studio esteja desatualizado, o que requer a limpeza de tokens de acesso expirados do cache do aplicativo.

Execute este comando a partir da Paleta de Comandos (Ctrl/CMD + Shift + P) para limpar tokens de acesso para contas Microsoft Entra vinculadas:

Azure Accounts: Clear Azure Account Token Cache (accounts.clearTokenCache)

Limpar todas as contas salvas do Microsoft Entra

Execute este comando a partir da Paleta de Comandos (Ctrl/CMD + Shift + P) para remover todas as contas Microsoft Entra ligadas do Azure Data Studio:

Limpar todas as contas salvas (clearSavedAccounts)