Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
- Hämta ett certifikat som ska användas för SQL Server och importera det till datorcertifikatarkivet. Vi rekommenderar ett ca-signerat certifikat.
Använd ett unikt CN-namn för certifikatet som inte matchar några certifikat som är installerade i certifikatsbutiken.
Installera certifikatet i datorcertifikatarkivet. Mer information finns i Importera certifikatet till det lokala datorarkivet.
Lägg till
Readbehörigheter för SQL Server-tjänstkontot på certifikatet.
Installera adal.dll
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 .
När du har installerat Microsoft OLE DB-drivrutinen för SQL Server kontrollerar du att adal.dll finns i mappen
C:\windows\system32.Du bör också ha registernyckeln
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirmed värdetC:\windows\system32\adal.dll. Om den inte finns skapar du den.
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.
- Ange ett namn – Exemplet i den här artikeln använder SQLServer.
- Välj kontotyper som stöds och använd endast -konton i den här organisationskatalogen
- Ange inte en omdirigerings-URI
- Välj Registrera
Se applikationsregistreringen nedan:
Bevilja applikationsbehörigheter
Välj det nyligen skapade programmet och välj API-behörigheterpå menyn till vänster.
Välj Lägg till en behörighet>Microsoft Graph>Programbehörigheter
- Kontrollera Directory.Read.All
- Välj Lägg till behörigheter
Eller:
Välj Lägg till en behörighet>Microsoft Graph>Programbehörigheter
Kontrollera Application.Read.All
Kontrollera Group.Read.All
Kontrollera User.Read.All
Välj Lägg till behörigheter
Välj Bevilja administratörsmedgivande
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.
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.
-
FederatedAuthenticationOm 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.