Azure Data Studio – Azure-anslutning

Azure Data Studio använder Microsoft Authentication Library (MSAL) som standard för att hämta en åtkomsttoken från Microsoft Entra-ID. De inställningar som gäller för Microsoft Entra-autentisering diskuteras tillsammans med vanliga problem och deras lösningar.

Kommentar

Även om Microsoft Entra-ID är det nya namnet på Azure Active Directory (Azure AD), för att förhindra avbrott i befintliga miljöer, förblir Azure AD fortfarande i vissa hårdkodade element som gränssnittsfält, anslutningsproviders, felkoder och cmdletar. I den här artikeln är de två namnen utbytbara.

Azure: Autentiseringsbibliotek

Den här inställningen är endast tillgänglig i Azure Data Studio 1.41 till 1.45. Den är inte längre tillgänglig i Azure Data Studio 1.46 och senare versioner.

Den här inställningen styr det autentiseringsbibliotek som används av Azure Data Studio när du lägger till ett Microsoft Entra-konto. Microsoft Authentication Library (MSAL) erbjuder autentiserings- och auktoriseringstjänster med standardkompatibla implementeringar av OAuth 2.0 och OpenID Anslut (OIDC) 1.0. Läs mer om Microsoft Authentication Library (MSAL). I Azure Data Studio 1.46 och senare versioner är MSAL det enda bibliotek som används eftersom ADAL (Active Directory Authentication Library) är inaktuellt.

Azure-autentiseringsmetod

Azure Data Studio stöder Microsoft Entra multifaktorautentisering (MFA) med hjälp av följande lägen:

  • Använda kod bevilja autentisering (aktiverad som standard)
  • Använda autentisering med enhetskod

Konton > Azure > Auth: Code Grant

Settings.json

"accounts.azure.auth.codeGrant": true

Screenshot of Azure authentication Code Grant option.

När metoden För att bevilja kod är markerad uppmanas användarna att autentisera med webbläsarbaserad autentisering. Det här alternativet är aktiverat som standard.

Konton > Azure > Auth: Enhetskod

Settings.json

"accounts.azure.auth.deviceCode": true

Screenshot of Azure authentication Device Code option.

När metoden Enhetskod är aktiverad får användarna en kod och en URL att ange som sedan kan användas för att logga in.

När båda alternativen är markerade uppmanas användarna att välja något av de två autentiseringslägena när de lägger till ett Microsoft Entra-konto.

Azure-molnkonfiguration

Azure Data Studio stöder Microsoft Entra-autentisering med nationella moln. Azure Public Cloud är aktiverat som standard, men användarna kan aktivera andra nationella moln efter behov:

Settings.json

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

Screenshot of Azure authentication National Clouds.

Anpassade molnslutpunkter kan också definieras. Se Konfigurera anpassade molnslutpunkter.

Azure-resurskonfiguration

De här inställningarna tillämpar filter på Azure-resurser och klientorganisationer.

  • Resurskonfigurationsfilter: Tillämpar inkluderingsfilter på resurser som ska visas.
  • Klientkonfigurationsfilter: Tillämpar undantagsfilter på klienter som ska ignoreras.

Settings.json

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

Screenshot of Azure authentication resource configuration options.

Proxykonfiguration för Microsoft Entra-autentisering

Om du använder Azure Data Studio bakom en proxyserver måste användarna ange proxyinställningar för att Azure Data Studio ska kunna kommunicera med externa slutpunkter. Det finns två sätt att ange proxyinställningar som Azure Data Studio kan använda:

  • Ange proxykonfiguration i Azure Data Studio (Inställningar > Http: Proxy Inställningar)
  • Ställa in miljövariabler för proxykonfiguration

Azure Data Studio-inställningar har företräde framför miljövariabler.

Proxyinställningar för Azure Data Studio

Följande inställningar är tillgängliga i 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.

Miljövariabler som stöds för proxy

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

Url:er för tillåtna listor

I en proxymiljö kan användarprogram behöva tillåta specifika domäner som används av Azure Data Studio. Värdnamn som du kan behöva eller vill tillåta kommunikation med är:

Azure Public

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

Azure (US Government)

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

Azure drivs av 21Vianet

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

De URL:er som ska tillåtas kan ibland variera från fall till fall. För att kontrollera att du inte blockerar url:er från att gå igenom går du till Hjälp > att växla utvecklarverktyg och väljer fliken Nätverk . Alla URL:er som blockeras visas, och du kan behöva tillåta att dessa URL:er lägger till ditt konto.

Konfigurera anpassade molnslutpunkter

Azure Data Studio 1.46 introducerar stöd för att lägga till anpassade slutpunkter för icke-offentliga moln.

Lägga till anpassade molnslutpunkter

Öppna Inställningar i Azure Data Studio (Ctrl/Cmd + Skift + P) och ange Azure: Custom Provider Inställningar och välj sedan Redigera i settings.json, som öppnar settings.json filen automatiskt och lägger till azure.customProviderSettings:

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

Följande poster krävs för att slutpunkten ska fungera:

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

Ett exempel på en JSON-post för en provider visas som en guide:

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

Spara filen när du har lagt till slutpunkten settings.json . Azure Data Studio meddelar dig att läsa in programmet igen. När den har lästs in igen meddelas du att de anpassade slutpunkterna har lästs in:

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

Om det här meddelandet inte visas kontrollerar du att alla poster för slutpunkten finns och är ifyllda.

När du har lagt till ett anpassat moln öppnar du fönstret Azure-länkade konton så visas den anpassade molnvyn. Välj Lägg till ett konto och välj autentiseringsläget om du uppmanas att göra det. Du tas till värdslutpunkten för att autentisera.

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

Flera anpassade molnleverantörer

Ytterligare molnleverantörer kan läggas till i settings.json filen med samma format.

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

Vanliga autentiseringsproblem

Möjliga problem och lösningar när du lägger till ett Azure-konto diskuteras.

Problem: SSL-fel på localhost-sidan (ERR_SSL_PROTOCOL_ERROR)

Användare kan se ett SSL-fel när de loggar in på sitt konto. Det här flödet öppnar en extern webbsida till localhost, vilket vanligtvis uppmanar användarna att logga in via microsofts standardanvisningarna för autentisering. URL:en för den här sidan ser ut ungefär som http://localhost:50055/signin?nonce=...

Vissa webbläsare kan konfigureras för att automatiskt omdirigera alla http länkar till https, vilket bryter den här processen eftersom den lokala server som betjänar webbsidan inte stöder https. Om länken i adressfältet börjar med httpsfår du ett SSL-fel och sidan kan inte läsas in. I så fall kan de lösningar som anges här åtgärda problemet.

Ändra URL till http

Ändra först URL:en manuellt från https:// till http://. Webbläsaren kan ändra tillbaka den till https, i vilket fall det är nödvändigt att prova ett annat alternativ.

Inaktivera HSTS (HTTP Strikt transportsäkerhet)

För Edge-/Chrome-webbläsare kan du inaktivera HSTS för localhost.

  1. Öppna Edge/Chrome och skriv edge://net-internals/#hsts (eller chrome://net-internals/#hsts för Chrome) i adressfältet.
  2. Rulla längst ned på sidan och i avsnittet Delete domain security policies anger localhost du och trycker på Delete.

När det är klart bör du kunna logga in och inte låta webbläsaren omdirigera dina localhost länkar automatiskt till https.

Problem: Det går inte att lägga till ett konto bakom en proxyserver

Om användarprogrammet körs i en miljö bakom en proxyserver kanske användarautentiseringen inte slutförs och de här stegen kan användas för att lösa problemet.

  1. Kontrollera miljövariabler och http.proxy-inställningar i Azure Data Studio igen. Om proxyn kräver användarautentisering kan ett användarnamn/lösenord i http.proxy-URL :en lösa autentiseringsproblem. Annars kan Azure Data Studio inte läsa inloggade autentiseringsuppgifter. Du kan också prova att köra Azure Data Studio som en annan användare, eftersom det kan hjälpa dig att lösa autentiseringsproblem med proxy. Det senare fungerar dock bara för vissa scenarier.

  2. Url:erna som ska tillåtas kan variera från fall till fall. Om du vill kontrollera att du inte blockerar url:er från att gå igenom går du till Hjälp växla utvecklarverktyg och väljer fliken Nätverk>. Här ser du alla URL:er som blockeras och som du kan behöva tillåta för att lägga till ditt konto.

  3. Avmarkera Http: Strikt SSL-proxyproxy. Det är möjligt att proxycertifikatet inte kan verifieras mot listan över betrodda certifikatutfärdare. Om du inaktiverar Strikt SSL kan proxycertifikatet uteslutas som ett problem.

För att avsluta:

Som ett plattformsoberoende program hämtar Azure Data Studio proxymatchning proxyn från antingen inställningen i programmet eller via miljövariabler. Syftet är att undvika interaktion med systeminställningar, som kan variera avsevärt på olika operativsystem.

Problem: Azure Core-tillägget är inaktiverat

Azure Core-tillägget är ett inbyggt tillägg i Azure Data Studio. Kontrollera att den inte har inaktiverats eller avinstallerats av misstag. Det här tillägget krävs för att autentisera Microsoft Entra-konton och ansluta till resurser med hjälp av MFA.

Screenshot of built-in Azure Core extension.

Problem: Certifikat för systemcertifikatutfärdare har upphört att gälla

Standardbeteendet för Azure Data Studio omfattar validering av systemets rotcertifikatutfärdarcertifikat när REST API-anrop används med HJÄLP av HTTPS Protocol. Verifieringen styrs med inställningen http:systemCertificates , som är aktiverad som standard:

Screenshot of system certificates setting.

"http.systemCertificates": true

Om ett systems rotcertifikatutfärdarcertifikat har upphört att gälla misslyckas autentiseringsbegäranden till Microsoft Entra-ID och ett fel registreras i Azure-kontologgarna:

error: certificate is expired

För att undvika det här felet bör du ta bort alla utgångna rotcertifikatutfärdarcertifikat eller inaktivera inställningen för att inte validera systemcertifikat.

Samla in loggar för Azure-autentisering

Azure Data Studio samlar in felhändelser för Microsoft Entra-kontoaktivitet som standard. Om du vill aktivera mer detaljerade spårningar kan användarna ändra de här inställningarna:

Azure: Loggningsnivå

Den här inställningen konfigurerar loggningsnivån för information från Azure Core som kan samlas in i Azure Data Studio. Ändra den till Utförlig eller Alla för att samla in detaljerade loggar som kan vara användbara för att diagnostisera autentiseringsfel. Mer information finns i Azure Data Studio-loggar och -plats för att lära dig hur du samlar in loggningsinformation.

Settings.json

"azure.loggingLevel": "Verbose"

Screenshot of Azure authentication logging Level configuration.

Azure: PII-loggning

Användare kan aktivera PII-loggning (personligt identifierbar information) för lokal testning och felsökning. Den här inställningen möjliggör noggrannare loggning av autentiseringsprocessen, men kan innehålla känslig information, till exempel åtkomsttoken eller användar-ID:n när du autentiserar med Microsoft Entra-ID. Eftersom den här loggningen samlar in känslig information rekommenderar vi att du:

  • Dela inte dessa loggar med någon annan, särskilt inte när du lägger till loggar i GitHub-problem
  • Inaktivera inställningen när nödvändig information har samlats in
  • Ta bort loggfilerna när inställningen har inaktiverats

Settings.json

"azure.piiLogging": true

Screenshot of Azure authentication PII logging option.

Azure: Ingen systemnyckelkedja

Den här inställningen inaktiverar systemnyckelringsintegrering för att förhindra upprepade frågor om åtkomst till nyckelringar på macOS. Användarautentiseringsuppgifter lagras alternativt i en flat fil i användarens hemkatalog.

Settings.json

"azure.noSystemKeychain": true

Screenshot of Azure authentication keychain configuration.

Rensa Cacheminne för Microsoft Entra-kontotoken

Azure Data Studio har en cache med åtkomsttoken för att förhindra begränsning av tokenbegäranden till Microsoft Entra-ID. Det är möjligt att Azure Data Studio-tokencacheminnet kan vara inaktuellt, vilket kräver rensning av utgångna åtkomsttoken från programcachen.

Kör det här kommandot från kommandopaletten (Ctrl/CMD + Skift + P) för att rensa åtkomsttoken för länkade Microsoft Entra-konton:

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

Rensa alla sparade Microsoft Entra-konton

Kör det här kommandot från kommandopaletten (Ctrl/CMD + Skift + P) för att ta bort alla länkade Microsoft Entra-konton från Azure Data Studio:

Rensa alla sparade konton (clearSavedAccounts)