Delen via


Zelfstudie: Microsoft Entra-verificatie inschakelen voor SQL Server in Windows zonder Azure Arc

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

  1. 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.
    1. Gebruik een unieke CN-naam voor het certificaat dat niet overeenkomt met certificaten die zijn geïnstalleerd in het certificaatarchief.

    2. Installeer het certificaat in het certificaatarchief van de computer. Zie Het certificaat importeren in het lokale computerarchief voor meer informatie.

    3. Voeg Read machtigingen toe voor het SQL Server-serviceaccount op het certificaat.

      Schermopname van de machtigingseigenschappen van een certificaat.

adal.dll installeren

  1. 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 .

  2. 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.

  3. U moet ook de registersleutel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDir met de waarde C:\windows\system32\adal.dllhebben. Als deze niet bestaat, maakt u deze.

    Schermopname van de registersleutel voor adal.dll.

    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.
    1. Geef een naam op: het voorbeeld in dit artikel maakt gebruik van SQLServer.
    2. Selecteer Ondersteunde accounttypen en gebruik alleen Accounts in deze organisatiemap
    3. Stel geen omleidings-URI in
    4. Selecteer Registreren

Zie de onderstaande toepassingsregistratie:

Schermopname van het registreren van de toepassing in Azure Portal.

Applicatiemachtigingen verlenen

Selecteer de zojuist gemaakte toepassing en selecteer in het menu aan de linkerkant API-machtigingen.

  1. Selecteer Een machtiging toevoegen>Microsoft Graph>Toepassingsmachtigingen

    1. Controleer de toegang tot Directory.Read.All
    2. Selecteer Machtigingen toevoegen

Of

  1. Selecteer Een machtiging toevoegen>Microsoft Graph>Toepassingsmachtigingen

    1. Controleer Application.Read.All

    2. Controleer Group.Read.All

    3. Controleer User.Read.All

    4. Selecteer Machtigingen toevoegen

  2. Selecteer Beheerderstoestemming verlenen

Schermopname die laat zien hoe u toestemming kunt verlenen in Azure Portal.

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.

Schermopname van het uploaden van een certificaat voor de toepassing in 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 FederatedAuthentication met 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.