Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2022 (16.x) en hoger.
In dit artikel wordt beschreven hoe u zich kunt verifiëren met Microsoft Entra-id zonder Azure Arc in te stellen voor uw on-premises SQL Server 2022 en latere versies. Microsoft Entra-verificatie is een cloudservice voor identiteitsbeheer die veilige toegang biedt tot SQL Server-databases. In deze zelfstudie wordt u begeleid bij het instellen van Microsoft Entra-verificatie voor SQL Server in Windows zonder Azure Arc.
Opmerking
Microsoft Entra-id werd voorheen Azure Active Directory (Azure AD) genoemd.
In deze handleiding leer je hoe je:
- Voeg een certificaat toe voor SQL Server.
- Installeer adal.dll gebruikt om verbinding te maken met SQL Server.
- Een Microsoft Entra ID-toepassing maken en registreren.
- Machtigingen voor applicaties verlenen.
- Upload het certificaat naar de toepassing.
- Voeg registerwaarden toe om Microsoft Entra-verificatie in te schakelen voor SQL Server.
Vereiste voorwaarden
- Een on-premises VERSIE van SQL Server 2022 of hoger.
- Een actieve Microsoft Entra ID-tenant .
- Deze installatie maakt gebruik van een toepassingsregistratie om SQL Server te koppelen aan Microsoft Entra-id. Volg de handleiding voor het registreren van een toepassing in Microsoft Entra ID.
- Controleer of de SQL Server netwerkconnectiviteit met Azure heeft, met name naar de volgende Microsoft Entra ID-service en -adressen:
- login.windows.net.
- login.microsoftonline.com.
- graph.microsoft.com.
- graph.windows.net.
- database.windows.net.
- De volledige lijst met IP-adressen en URL's is niet nodig, maar vindt u in het artikel, Microsoft 365-URL's en IP-adresbereiken.
Een certificaat verkrijgen
- Haal een certificaat op dat moet worden gebruikt voor de SQL Server en importeer dit in het certificaatarchief van de computer. We raden een ondertekend CA-certificaat aan.
Gebruik een unieke CN-naam voor het certificaat dat niet overeenkomt met certificaten die zijn geïnstalleerd in het certificaatarchief.
Installeer het certificaat in het certificaatarchief van de computer. Zie Het certificaat importeren in het lokale computerarchief voor meer informatie.
Voeg
Readmachtigingen toe voor het SQL Server-serviceaccount op het certificaat.
adal.dll installeren
Installeer adal.dll voor SQL Server. Deze bibliotheek is nodig voor het maken van verbinding met uw SQL Server met Microsoft Entra-verificatie. U kunt adal.dll ophalen uit het nieuwste Microsoft OLE DB-stuurprogramma voor SQL Server-installatie .
Nadat u het Microsoft OLE DB-stuurprogramma voor SQL Server hebt geïnstalleerd, moet u ervoor zorgen dat adal.dll zich in de map
C:\windows\system32bevindt.U moet ook de registersleutel
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirmet de waardeC:\windows\system32\adal.dllhebben. Als deze niet bestaat, maakt u deze.
Zie Windows-registergegevens voor geavanceerde gebruikers voor meer informatie over het Windows-register.
Een Microsoft Entra ID-toepassing maken en registreren
- Ga naar de Azure Portalen selecteer Microsoft Entra ID>App-registraties>Nieuwe registratie.
- Geef een naam op: het voorbeeld in dit artikel maakt gebruik van SQLServer.
- Selecteer Ondersteunde accounttypen en gebruik alleen Accounts in deze organisatiemap
- Stel geen omleidings-URI in
- Selecteer Registreren
Zie de onderstaande toepassingsregistratie:
Applicatiemachtigingen verlenen
Selecteer de zojuist gemaakte toepassing en selecteer in het menu aan de linkerkant API-machtigingen.
Selecteer Een machtiging toevoegen>Microsoft Graph>Toepassingsmachtigingen
- Controleer de toegang tot Directory.Read.All
- Selecteer Machtigingen toevoegen
Of
Selecteer Een machtiging toevoegen>Microsoft Graph>Toepassingsmachtigingen
Controleer Application.Read.All
Controleer Group.Read.All
Controleer User.Read.All
Selecteer Machtigingen toevoegen
Selecteer Beheerderstoestemming verlenen
Opmerking
Als u beheerderstoestemming wilt verlenen aan de bovenstaande machtigingen, vereist uw Microsoft Entra-account de rol Beheerder met bevoorrechte rollen of hogere machtigingen.
Het certificaat uploaden
Upload het certificaat dat u hebt gemaakt in de sectie Een certificaat verkrijgen, in het .cer of .pem-formaat, naar de toepassingsregistratie in de Azure Portal.
Registerwaarden toevoegen om Microsoft Entra-verificatie in te schakelen voor SQL Server
Werk de registersleutel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication bij met de volgende waarden om Microsoft Entra-verificatie in te schakelen voor SQL Server. Een voorbeeld van het registersleutelpad voor SQL Server 2022 is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.
Waarschuwing
Er kunnen ernstige problemen optreden als u het register onjuist wijzigt met behulp van de Register-editor of met behulp van een andere methode. Het kan zijn dat u het besturingssysteem opnieuw moet installeren vanwege deze problemen. Microsoft kan niet garanderen dat deze problemen kunnen worden opgelost. Bewerk het register op eigen risico.
- Als de sleutel niet bestaat, maakt u deze
FederatedAuthenticationmet alle volgende waarden. - De eerste vijf vermeldingen die worden vermeld, moeten worden bijgewerkt met de waarden van de toepassing die u in de vorige sectie hebt gemaakt. De rest van de vermeldingen zijn standaardwaarden.
- Dit
<sql-server-certificate-name>is de naam van het certificaat dat u hebt gemaakt in de sectie Een certificaat verkrijgen en geüpload naar Azure. - Dit
<application-client-id>is de toepassings-id (client) van de toepassing die u hebt gemaakt in de sectie Een Microsoft Entra ID-toepassing maken en registreren. Zie Client-id voor meer informatie over het vinden van de client-id. - Dit
<tenant-id>is de tenant-id van uw Azure-tenant. U vindt de tenant-id in Azure Portal onder Overzicht van 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"=""
Zie windows-registergegevens voor geavanceerde gebruikers voor meer informatie over het Windows-register, waaronder back-ups maken, bewerken en herstellen van registersleutels.
Authenticatie testen
Nadat u de server hebt ingesteld en de registerwaarden hebt bewerkt, moet Microsoft Entra-verificatie functioneel zijn. Test de installatie door aanmeldingen te maken met behulp van de volgende T-SQL-opdrachten:
CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER
Veelvoorkomende problemen
U ziet mogelijk de volgende fout:
Keyset does not exist (AdalDll) with error code: 21
Deze fout kan worden veroorzaakt door machtigingsproblemen op het certificaat. Zorg ervoor dat het SQL Server-serviceaccount machtigingen heeft Read voor het certificaat. Als het probleem zich blijft voordoen, moet u ervoor zorgen dat het certificaat een unieke CN-naam heeft die niet overeenkomt met andere certificaten in het certificaatarchief.