Azure Data Studio - Connettività di Azure

Per impostazione predefinita, Azure Data Studio usa Microsoft Authentication Library (MSAL) per acquisire un token di accesso da Microsoft Entra ID. Le impostazioni applicabili all'autenticazione di Microsoft Entra vengono illustrate, insieme ai problemi comunemente osservati e alle relative soluzioni.

Nota

Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, Azure AD rimane ancora in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici di errore e cmdlet. In questo articolo i due nomi sono intercambiabili.

Azure: Libreria di autenticazione

Questa impostazione è disponibile solo in Azure Data Studio da 1.41 a 1.45. Non è più disponibile in Azure Data Studio 1.46 e versioni successive.

Questa impostazione controlla la libreria di autenticazione usata da Azure Data Studio quando si aggiunge un account Microsoft Entra. Microsoft Authentication Library (MSAL) offre servizi di autenticazione e autorizzazione usando implementazioni conformi agli standard di OAuth 2.0 e OpenID Connessione (OIDC) 1.0. Altre informazioni su Microsoft Authentication Library (MSAL). In Azure Data Studio 1.46 e versioni successive, MSAL è l'unica libreria in uso, perché ADAL (Active Directory Authentication Library) è deprecato.

Metodo di autenticazione di Azure

Azure Data Studio supporta l'autenticazione a più fattori (MFA) di Microsoft Entra usando le modalità seguenti:

  • Uso dell'autenticazione code grant (abilitata per impostazione predefinita)
  • Uso dell'autenticazione del codice del dispositivo

Account > di Autenticazione di Azure > : Concessione di codice

Settings.json

"accounts.azure.auth.codeGrant": true

Screenshot of Azure authentication Code Grant option.

Quando viene controllato il metodo di concessione del codice, agli utenti viene richiesto di eseguire l'autenticazione con l'autenticazione basata su browser. Per impostazione predefinita, questa opzione è attivata.

Account > di autenticazione di Azure > : codice del dispositivo

Settings.json

"accounts.azure.auth.deviceCode": true

Screenshot of Azure authentication Device Code option.

Quando il metodo Device Code è abilitato, gli utenti vengono forniti con un codice e un URL da immettere che può quindi essere usato per accedere.

Quando vengono selezionate entrambe le opzioni, agli utenti viene richiesto di selezionare una delle due modalità di autenticazione quando si aggiunge un account Microsoft Entra.

Configurazione cloud di Azure

Azure Data Studio supporta l'autenticazione di Microsoft Entra con cloud nazionali. Il cloud pubblico di Azure è abilitato per impostazione predefinita, ma gli utenti possono abilitare altri cloud nazionali in base alle esigenze:

Settings.json

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

Screenshot of Azure authentication National Clouds.

È anche possibile definire endpoint cloud personalizzati. Vedere Configurazione di endpoint cloud personalizzati.

Configurazione delle risorse di Azure

Queste impostazioni applicano filtri alle risorse e ai tenant di Azure.

  • Filtro Configurazione risorse: applica il filtro di inclusione alle risorse che devono essere visualizzate.
  • Filtro configurazione tenant: applica il filtro di esclusione ai tenant che devono essere ignorati.

Settings.json

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

Screenshot of Azure authentication resource configuration options.

Configurazione del proxy per l'autenticazione di Microsoft Entra

Se si usa Azure Data Studio dietro un proxy, gli utenti devono specificare le impostazioni proxy per Azure Data Studio per comunicare con endpoint esterni. Esistono due modi per fornire le impostazioni proxy per Azure Data Studio da usare:

  • Impostazione della configurazione del proxy in Azure Data Studio (Impostazioni > Http: Proxy Impostazioni)
  • Impostazione delle variabili di ambiente per la configurazione del proxy

Le impostazioni di Azure Data Studio hanno la precedenza sulle variabili di ambiente.

Impostazioni proxy di Azure Data Studio

In Azure Data Studio sono disponibili le impostazioni seguenti:

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.

Variabili di ambiente supportate per il proxy

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

URL consentiti

In un ambiente proxy, le applicazioni utente potrebbero dover consentire domini specifici usati da Azure Data Studio. I nomi host tramite cui potrebbe essere necessario o si vuole consentire la comunicazione sono:

Pubblico di Azure

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

Azure (US Government)

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

Azure gestito da 21Vianet

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

Gli URL da consentire possono talvolta variare caso per caso. Per verificare che non si blocchino gli URL, passare a Guida > /Disattiva strumenti di sviluppo e selezionare la scheda Rete . Tutti gli URL bloccati sono elencati e potrebbe essere necessario consentire a tali URL di aggiungere correttamente l'account.

Configurazione di endpoint cloud personalizzati

Azure Data Studio 1.46 introduce il supporto per l'aggiunta di endpoint personalizzati per cloud non pubblici.

Aggiunta di endpoint cloud personalizzati

Aprire Impostazioni in Azure Data Studio (CTRL/CMD + MAIUSC + P) e immettere Azure: Custom Provider Impostazioni , quindi selezionare Modifica in settings.json, che apre automaticamente il settings.json file e aggiunge azure.customProviderSettings:

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

Per il funzionamento dell'endpoint sono necessarie le voci seguenti:

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

Una voce JSON di esempio per un provider viene presentata come guida:

"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"
                }
            }
        }
    }
]

Dopo aver aggiunto l'endpoint, salvare il settings.json file. Azure Data Studio invia una notifica per ricaricare l'applicazione. Dopo il caricamento, si riceve una notifica che indica che gli endpoint personalizzati sono stati caricati:

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

Se questo messaggio non viene visualizzato, verificare che tutte le voci per l'endpoint esistano e che siano compilate.

Dopo aver aggiunto un cloud personalizzato, aprire il riquadro Account collegati di Azure e viene visualizzato il viewlet cloud personalizzato. Selezionare Aggiungi un account e scegliere la modalità di autenticazione, se richiesto. Viene eseguito l'accesso all'endpoint host per l'autenticazione.

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

Più provider di servizi cloud personalizzati

È possibile aggiungere altri provider di servizi cloud al settings.json file usando lo stesso 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"
                }
            }
        }
    }
]

Problemi di autenticazione comuni

Vengono illustrati i possibili problemi e soluzioni durante l'aggiunta di un account Azure.

Problema: Errore SSL nella pagina localhost (ERR_SSL_PROTOCOL_ERROR)

Gli utenti potrebbero visualizzare un errore SSL durante l'accesso al proprio account. Questo flusso apre una pagina Web esterna a localhost, in genere richiedendo agli utenti di accedere tramite le richieste di autenticazione Microsoft standard. L'URL di questa pagina è simile a http://localhost:50055/signin?nonce=...

Alcuni browser possono essere configurati per reindirizzare automaticamente tutti i http collegamenti a https, che interrompe questo processo perché il server locale che gestisce la pagina Web non supporta https. Se il collegamento nella barra degli indirizzi inizia con https, viene visualizzato un errore SSL e la pagina non può essere caricata. In tal caso, le soluzioni alternative elencate qui possono risolvere il problema.

Modificare l'URL in http

Prima di tutto, modificare manualmente l'URL da https:// a http://. Il browser può tornare a https, nel qual caso è necessario provare un'altra opzione.

Disabilitare HSTS (HTTP Strict Transport Security)

Per i browser Edge/Chrome, è possibile disabilitare HSTS per localhost.

  1. Aprire Edge/Chrome e nella barra degli indirizzi digitare edge://net-internals/#hsts (o chrome://net-internals/#hsts per Chrome).
  2. Scorrere fino alla fine della pagina e nella Delete domain security policies sezione immettere localhost e premere Delete.

Al termine, si dovrebbe essere in grado di accedere e non fare in modo che il browser reindirizzi automaticamente i localhost collegamenti a https.

Problema: Impossibile aggiungere un account dietro un proxy

Se l'applicazione utente è in esecuzione in un ambiente protetto da un proxy, l'autenticazione utente potrebbe non essere completata e questi passaggi possono essere usati per risolvere il problema.

  1. Controllare di nuovo le variabili di ambiente e le impostazioni http.proxy in Azure Data Studio. Se il proxy richiede l'autenticazione utente, fornire un nome utente/password nell'URL http.proxy può risolvere i problemi di autenticazione. In caso contrario, Azure Data Studio non può leggere le credenziali utente registrate. In alternativa, è possibile provare a eseguire Azure Data Studio come utente diverso, perché può aiutare a risolvere i problemi di autenticazione con il proxy. Tuttavia, quest'ultimo funziona solo per alcuni scenari.

  2. Gli URL consentiti possono variare caso per caso. Per verificare che non si blocchino gli URL, passare a Guida > /Disattiva strumenti di sviluppo e selezionare la scheda Rete . Qui vengono visualizzati tutti gli URL bloccati che potrebbero essere necessari per consentire l'aggiunta corretta dell'account.

  3. Deselezionare Http: Proxy Strict SSL. È possibile che il certificato proxy non sia verificabile rispetto all'elenco di ca attendibili. La disabilitazione di Strict SSL può escludere il certificato proxy come problema.

Per concludere:

Come applicazione multipiattaforma, la risoluzione proxy di Azure Data Studio recupera il proxy dall'impostazione all'interno dell'applicazione o tramite variabili di ambiente. L'obiettivo è evitare l'interazione con le impostazioni del sistema, che possono variare in modo significativo su sistemi operativi diversi.

Problema: l'estensione Azure Core è disabilitata

L'estensione Azure Core è un'estensione predefinita in Azure Data Studio. Assicurarsi che non sia disabilitato o disinstallato accidentalmente. Questa estensione è necessaria per autenticare gli account Microsoft Entra e connettersi alle risorse tramite MFA.

Screenshot of built-in Azure Core extension.

Problema: i certificati CA di sistema sono scaduti

Il comportamento predefinito di Azure Data Studio include la convalida dei certificati CA radice del sistema durante l'esecuzione di chiamate API REST tramite il protocollo HTTPS. La convalida viene controllata con l'impostazione http:systemCertificates abilitata per impostazione predefinita:

Screenshot of system certificates setting.

"http.systemCertificates": true

Se il certificato CA radice di un sistema è scaduto, le richieste di autenticazione all'ID Microsoft Entra hanno esito negativo e viene acquisito un errore nei log dell'account Azure:

error: certificate is expired

Per attenuare questo errore, è necessario rimuovere eventuali certificati CA radice scaduti o disabilitare l'impostazione per non convalidare i certificati di sistema.

Acquisire i log per l'autenticazione di Azure

Azure Data Studio acquisisce gli eventi di errore per l'attività dell'account Microsoft Entra per impostazione predefinita. Per abilitare tracce più dettagliate, gli utenti possono modificare queste impostazioni:

Azure: livello di registrazione

Questa impostazione configura il livello di registrazione per le informazioni dei core di Azure che possono essere acquisite in Azure Data Studio. Impostarlo su Dettagliato o Tutto per acquisire log dettagliati che possono essere utili per diagnosticare gli errori di autenticazione. Per altre informazioni, vedere Log e posizione di Azure Data Studio per informazioni su come acquisire informazioni di registrazione.

Settings.json

"azure.loggingLevel": "Verbose"

Screenshot of Azure authentication logging Level configuration.

Azure: registrazione delle informazioni personali

Gli utenti possono abilitare la registrazione delle informazioni personali (informazioni personali) per scopi di test e debug locali. Questa impostazione consente una registrazione più approfondita del processo di autenticazione, ma può contenere informazioni riservate, ad esempio token di accesso o ID utente durante l'autenticazione con Microsoft Entra ID. Poiché questa registrazione acquisisce informazioni riservate, è consigliabile:

  • Non condividere questi log con altri utenti, soprattutto quando si aggiungono log a GitHub
  • Disabilitare l'impostazione dopo aver raccolto le informazioni necessarie
  • Eliminare i file di log dopo che l'impostazione è stata disabilitata

Settings.json

"azure.piiLogging": true

Screenshot of Azure authentication PII logging option.

Azure: Nessun portachiavi di sistema

Questa impostazione disabilita l'integrazione del portachiavi di sistema per impedire richieste di accesso al portachiavi ripetute in macOS. Le credenziali utente vengono in alternativa archiviate in un file flat nella home directory dell'utente.

Settings.json

"azure.noSystemKeychain": true

Screenshot of Azure authentication keychain configuration.

Cancellare la cache dei token dell'account Microsoft Entra

Azure Data Studio gestisce una cache di token di accesso per impedire la limitazione delle richieste di token all'ID Microsoft Entra. È possibile che la cache dei token di Azure Data Studio sia obsoleta, che richiede la pulizia dei token di accesso scaduti dalla cache dell'applicazione.

Eseguire questo comando dal riquadro comandi (CTRL/CMD + MAIUSC + P) per cancellare i token di accesso per gli account Microsoft Entra collegati:

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

Cancellare tutti gli account Microsoft Entra salvati

Eseguire questo comando dal riquadro comandi (CTRL/CMD + MAIUSC + P) per rimuovere tutti gli account Microsoft Entra collegati da Azure Data Studio:

Cancellare tutti gli account salvati (clearSavedAccounts)