Dela via


Självstudie: Aktivera Microsoft Entra-autentisering för SQL Server i Windows utan Azure Arc

Gäller för: SQL Server 2022 (16.x) och senare.

Den här artikeln beskriver hur du autentiserar med Microsoft Entra-ID utan att konfigurera Azure Arc för dina lokala SQL Server 2022- och senare versioner. Microsoft Entra-autentisering är en molnbaserad identitetshanteringstjänst som ger säker åtkomst till SQL Server-databaser. Den här självstudien beskriver hur du konfigurerar Microsoft Entra-autentisering för SQL Server i Windows utan Azure Arc.

Anmärkning

Microsoft Entra-ID kallades tidigare Azure Active Directory (Azure AD).

I den här tutorialen lär du dig följande:

  • Lägg till ett certifikat för SQL Server.
  • Installera adal.dll som används för att ansluta till SQL Server.
  • Skapa och registrera ett Microsoft Entra-ID-program.
  • Bevilja ansökningsbehörigheter.
  • Ladda upp certifikatet till programmet.
  • Lägg till registervärden för att aktivera Microsoft Entra-autentisering för SQL Server.

Förutsättningar

  • En lokal SQL Server 2022 eller senare version.
  • En aktiv Microsoft Entra ID-hyresgäst.
  • Den här konfigurationen använder en programregistrering för att associera SQL Server med Microsoft Entra-ID. Följ guiden för att registrera ett program i Microsoft Entra-ID.
  • Kontrollera att SQL Server har nätverksanslutning till Azure, särskilt till följande Microsoft Entra ID-tjänst och -adresser:
    • login.windows.net.
    • login.microsoftonline.com.
    • graph.microsoft.com.
    • graph.windows.net.
    • database.windows.net.
    • Den fullständiga listan över IP-adresser och URL:er behövs inte, men finns i artikeln , Microsoft 365-URL:er och IP-adressintervall.

Skaffa ett certifikat

  1. Hämta ett certifikat som ska användas för SQL Server och importera det till datorcertifikatarkivet. Vi rekommenderar ett ca-signerat certifikat.
    1. Använd ett unikt CN-namn för certifikatet som inte matchar några certifikat som är installerade i certifikatsbutiken.

    2. Installera certifikatet i datorcertifikatarkivet. Mer information finns i Importera certifikatet till det lokala datorarkivet.

    3. Lägg till Read behörigheter för SQL Server-tjänstkontot på certifikatet.

      Skärmbild av behörighetsegenskaperna för ett certifikat.

Installera adal.dll

  1. Installera adal.dll för SQL Server. Det här biblioteket behövs för att ansluta till din SQL Server med Microsoft Entra-autentisering. Du kan hämta adal.dll från den senaste installationen av Microsoft OLE DB-drivrutinen för SQL Server .

  2. När du har installerat Microsoft OLE DB-drivrutinen för SQL Server kontrollerar du att adal.dll finns i mappen C:\windows\system32.

  3. Du bör också ha registernyckeln HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDir med värdet C:\windows\system32\adal.dll. Om den inte finns skapar du den.

    Skärmbild av registernyckeln för adal.dll.

    Mer information om Windows-registret finns i Windows-registerinformation för avancerade användare.

Skapa och registrera ett Microsoft Entra-ID-program

  • Gå till Azure-portalenoch välj Microsoft Entra ID>App-registreringar>Ny registrering.
    1. Ange ett namn – Exemplet i den här artikeln använder SQLServer.
    2. Välj kontotyper som stöds och använd endast -konton i den här organisationskatalogen
    3. Ange inte en omdirigerings-URI
    4. Välj Registrera

Se applikationsregistreringen nedan:

Skärmbild av registrering av program i Azure-portalen.

Bevilja applikationsbehörigheter

Välj det nyligen skapade programmet och välj API-behörigheterpå menyn till vänster.

  1. Välj Lägg till en behörighet>Microsoft Graph>Programbehörigheter

    1. Kontrollera Directory.Read.All
    2. Välj Lägg till behörigheter

Eller:

  1. Välj Lägg till en behörighet>Microsoft Graph>Programbehörigheter

    1. Kontrollera Application.Read.All

    2. Kontrollera Group.Read.All

    3. Kontrollera User.Read.All

    4. Välj Lägg till behörigheter

  2. Välj Bevilja administratörsmedgivande

Skärmbild som visar hur du beviljar medgivande i Azure-portalen.

Anmärkning

För att ge administratörsmedgivande till behörigheterna ovan kräver ditt Microsoft Entra-konto rollen Privilegierad rolladministratör eller högre behörigheter.

Ladda upp certifikatet

Ladda upp certifikatet som du skapade i avsnittet Hämta ett certifikat i .cer formatet eller .pem till programregistreringen i Azure-portalen.

Skärmbild som laddar upp ett certifikat för programmet i Azure-portalen.

Lägg till registervärden för att aktivera Microsoft Entra-autentisering för SQL Server

Uppdatera registernyckeln HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication med följande värden för att aktivera Microsoft Entra-autentisering för SQL Server. Ett exempel på registernyckelsökvägen för SQL Server 2022 är HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.

Varning

Allvarliga problem kan uppstå om du ändrar registret felaktigt med hjälp av Registereditorn eller någon annan metod. Dessa problem kan kräva att du installerar om operativsystemet. Microsoft kan inte garantera att problemen kan lösas. Ändringar av registret sker på egen risk.

  • FederatedAuthentication Om nyckeln inte finns skapar du den med alla följande värden.
  • De första fem posterna i listan måste uppdateras med värdena från programmet som du skapade i föregående avsnitt. Resten av posterna är standardvärden.
  • <sql-server-certificate-name> är namnet på certifikatet som du skapade i avsnittet Hämta ett certifikat och överfört till Azure.
  • <application-client-id> är program-ID:t (klient) från det program som du skapade i avsnittet Skapa och registrera ett Microsoft Entra-ID-program. Mer information om hur du hittar klient-ID finns i Klient-ID.
  • <tenant-id> är klientorganisations-ID:t från din Azure-klientorganisation. Du hittar klientorganisations-ID:t i Azure-portalen under Microsoft Entra ID>.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication]

"AADCertSubjectName"="<sql-server-certificate-name>"
"AADTenantSpecificSQLServicePrincipalCertSubjectName"="<sql-server-certificate-name>"
"ClientId"="<application-client-id>"
"AADTenantSpecificSQLServicePrincipalClientId"="<application-client-id>"
"PrimaryAADTenant"="<tenant-id>"
"AADChannelMaxBufferedMessageSize"="200000"
"AADGraphEndPoint"="graph.windows.net"
"AADGroupLookupMaxRetryAttempts"="10"
"AADGroupLookupMaxRetryDuration"="30000"
"AADGroupLookupRetryInitialBackoff"="100"
"AuthenticationEndpoint"="login.microsoftonline.com"
"CacheMaxSize"="300"
"FederationMetadataEndpoint"="login.windows.net"
"GraphAPIEndpoint"="graph.windows.net"
"IssuerURL"="https://sts.windows.net/"
"MsGraphEndPoint"="graph.microsoft.com"
"OnBehalfOfAuthority"="https://login.windows.net/"
"SendX5c"="false"
"ServicePrincipalName"="https://database.windows.net/"
"ServicePrincipalNameForArcadia"="https://sql.azuresynapse.net"
"ServicePrincipalNameForArcadiaDogfood"="https://sql.azuresynapse-dogfood.net"
"ServicePrincipalNameNoSlash"="https://database.windows.net"
"STSURL"="https://login.windows.net/"
"ClientCertBlackList"=""

Mer information om Windows-registret, inklusive säkerhetskopiering, redigering och återställning av registernycklar finns i Windows-registerinformation för avancerade användare.

Testa autentisering

När du har konfigurerat servern och redigerat registervärdena bör Microsoft Entra-autentiseringen fungera. Testa konfigurationen genom att skapa inloggningar med hjälp av följande T-SQL-kommandon:

CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER

Vanliga problem

Du kan se följande fel:

Keyset does not exist (AdalDll) with error code: 21

Det här felet kan bero på behörighetsproblem på certifikatet. Kontrollera att SQL Server-tjänstkontot har Read behörighet för certifikatet. Om problemet kvarstår kontrollerar du att certifikatet har ett unikt CN-namn som inte matchar andra certifikat i certifikatarkivet.