Azure Data Studio - Connettività di Azure
Azure Data Studio usa Microsoft Authentication Library (MSAL) per impostazione predefinita per acquisire un token di accesso da Microsoft Entra ID. Vengono illustrate le impostazioni applicabili all'autenticazione di Microsoft Entra, insieme ai problemi più frequenti 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, la denominazione Azure AD è tuttora mantenuta in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici errore e cmdlet. All’interno di questo articolo i due nomi vengono utilizzati in modo intercambiabile.
Azure: Authentication Library (ADAL)
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. Informazioni su Microsoft Authentication Library (MSAL). Con Azure Data Studio 1.46 e versioni successive, MSAL è l'unica libreria in uso, perché ADAL (Active Directory Authentication Library) è deprecata.
Metodo di autenticazione di Azure
Azure Data Studio supporta l'autenticazione a più fattori (MFA) Microsoft Entra con gli account Azure usando le seguenti modalità:
- Utilizzo dell’autenticazione di concessione del codice (abilitata per impostazione predefinita)
- Utilizzo dell’autenticazione con codice del dispositivo
Account di Autenticazione di >Azure >: Concessione di codice
Settings.json
"accounts.azure.auth.codeGrant": true
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
Quando è abilitato il metodo codice dispositivo, 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. Azure Public Cloud è 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
È anche possibile definire endpoint cloud personalizzati. Vedere Configurazione di endpoint cloud personalizzati.
Configurazione della risorsa 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"
]
Configurare il proxy per l'autenticazione di Microsoft Entra
Se si usa Azure Data Studio dietro un proxy, gli utenti devono specificare le impostazioni proxy per consentire ad Azure Data Studio di comunicare con endpoint esterni. Esistono due modi per fornire le impostazioni proxy per l'uso di Azure Data Studio:
- Impostazione della configurazione del proxy in Azure Data Studio (Impostazioni > Http: Impostazioni Proxy)
- 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 in Azure Data Studio
In Azure Data Studio sono disponibili le seguenti impostazioni:
Settings.json
"http.proxy": "https://userName@fqdn:yourPassword@yourProxyURL.com:8080",
"http.proxyStrictSSL": true,
"http.proxyAuthorization": "",
"http.proxySupport" : "override"
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'
Aggiungere URL all’elenco elementi 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 Gov)
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 > Attiva/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: Impostazioni provider personalizzate, quindi selezionare Modifica in settings.json, che apre automaticamente il file settings.json
e aggiungere azure.customProviderSettings
:
Per il funzionamento dell'endpoint sono necessarie le seguenti immissioni:
host
clientId
scopes
sqlResource
microsoftResource
armResource
graphResource
azureStorageResource
Una immissione 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 file settings.json
. Azure Data Studio invia una notifica per ricaricare l'applicazione. Dopo il caricamento, una notifica informa che gli endpoint personalizzati sono stati caricati:
Se questo messaggio non viene visualizzato, verificare che tutte le immissioni per l'endpoint esistano e siano compilate.
Dopo aver aggiunto un cloud personalizzato, aprire il riquadro Account collegati di Azure e per vedere il viewlet cloud personalizzato. Selezionare Aggiungi un account e scegliere la modalità di autenticazione, se richiesto. Viene visualizzato l'endpoint host per l'autenticazione.
Più provider di servizi cloud personalizzati
È possibile aggiungere altri provider di servizi cloud al file settings.json
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 il protocollo HTTP Strict Transport Security (HSTS)
Per i browser Edge/Chrome, è possibile disabilitare HSTS per localhost.
- Aprire Edge/Chrome e nella barra degli indirizzi digitare
edge://net-internals/#hsts
(ochrome://net-internals/#hsts
per Chrome). - Scorrere fino alla fine della pagina e nella sezione
Delete domain security policies
immetterelocalhost
e premereDelete
.
Al termine, si dovrebbe essere in grado di accedere e non fare in modo che il browser reindirizzi automaticamente i collegamenti localhost
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.
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, tentare l'esecuzione di Azure Data Studio come utente diverso; questo potrebbe risolvere i problemi di autenticazione con proxy. Tuttavia, quest'ultimo funziona solo per alcuni scenari.
Gli URL da consentire possono talvolta variare caso per caso. Per verificare che non si blocchino gli URL, passare a Guida > Attiva/Disattiva Strumenti di sviluppo e selezionare la scheda Rete. Qui è possibile vedere tutti gli URL bloccati e potrebbe essere necessario consentire a tali URL di aggiungere correttamente l'account.
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 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 disabilitata o disinstallata accidentalmente. Questa estensione è necessaria per autenticare gli account Microsoft Entra e connettersi alle risorse con l'autenticazione a più fattori.
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:
"http.systemCertificates": true
Se il certificato CA radice di un sistema è scaduto, le richieste di autenticazione a Microsoft Entra ID hanno esito negativo e verrà acquisito un errore nei log "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"
Azure: registrazione delle PII
Gli utenti possono abilitare la registrazione delle informazioni personali (PII) 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
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
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 a Microsoft Entra ID. È 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)