Teilen über


Lernprogramm: Aktivieren der Microsoft Entra-Authentifizierung für SQL Server unter Windows ohne Azure Arc

Gilt für: SQL Server 2022 (16.x) und höher.

In diesem Artikel wird beschrieben, wie Sie sich bei Microsoft Entra ID authentifizieren, ohne Azure Arc für Ihre lokale SQL Server 2022- und höhere Versionen einzurichten. Die Microsoft Entra-Authentifizierung ist ein cloudbasierter Identitätsverwaltungsdienst, der sicheren Zugriff auf SQL Server-Datenbanken bietet. Dieses Lernprogramm führt Sie durch den Prozess der Einrichtung der Microsoft Entra-Authentifizierung für SQL Server unter Windows ohne Azure Arc.

Hinweis

Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.

In diesem Tutorial lernen Sie Folgendes:

  • Fügen Sie ein Zertifikat für SQL Server hinzu.
  • Installieren Sie adal.dll, um eine Verbindung mit SQL Server herzustellen.
  • Erstellen und Registrieren einer Microsoft Entra ID-Anwendung.
  • Gewähren von Anwendungsberechtigungen.
  • Laden Sie das Zertifikat in die Anwendung hoch.
  • Fügen Sie Registrierungswerte hinzu, um die Microsoft Entra-Authentifizierung für SQL Server zu aktivieren.

Voraussetzungen

  • Eine lokale SQL Server 2022- oder höher-Version.
  • Ein aktiver Mandant einer Microsoft Entra ID.
  • Dieses Setup verwendet eine Anwendungsregistrierung, um SQL Server der Microsoft Entra-ID zuzuordnen. Befolgen Sie den Leitfaden, um eine Anwendung in der Microsoft Entra-ID zu registrieren.
  • Stellen Sie sicher, dass der SQL Server über eine Netzwerkkonnektivität mit Azure verfügt, insbesondere mit dem folgenden Microsoft Entra ID-Dienst und den folgenden Adressen:
    • login.windows.net.
    • login.microsoftonline.com.
    • graph.microsoft.com.
    • graph.windows.net.
    • database.windows.net.
    • Die vollständige Liste der IP-Adressen und URLs ist nicht erforderlich, finden Sie aber im Artikel, Microsoft 365-URLs und IP-Adressbereiche.

Beschaffung eines Zertifikats

  1. Rufen Sie ein Zertifikat ab, das für den SQL Server verwendet werden soll, und importieren Sie es in den Computerzertifikatspeicher. Wir empfehlen ein von einer Zertifizierungsstelle signiertes Zertifikat.
    1. Verwenden Sie einen eindeutigen CN-Namen für das Zertifikat, das nicht mit den im Zertifikatspeicher installierten Zertifikaten übereinstimmt.

    2. Installieren Sie das Zertifikat im Computerzertifikatspeicher. Weitere Informationen finden Sie unter Importieren des Zertifikats in den lokalen Computerspeicher.

    3. Fügen Sie für das SQL Server-Dienstkonto Read Berechtigungen auf dem Zertifikat hinzu.

      Screenshot der Berechtigungseigenschaften eines Zertifikats.

Installieren von adal.dll

  1. Installieren Sie adal.dll für SQL Server. Diese Bibliothek wird benötigt, um eine Verbindung mit Ihrem SQL Server mit der Microsoft Entra-Authentifizierung herzustellen. Sie können adal.dll durch die Installation des neuesten Microsoft OLE DB-Treibers für SQL Server erhalten.

  2. Stellen Sie nach der Installation des Microsoft OLE DB-Treibers für SQL Server sicher, dass sichadal.dll im Ordner C:\windows\system32befindet.

  3. Sie sollten auch über den Registrierungsschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDir mit dem Wert C:\windows\system32\adal.dllverfügen. Wenn sie nicht vorhanden ist, erstellen Sie sie.

    Screenshot des Registrierungsschlüssels für adal.dll.

    Weitere Informationen zur Windows-Registrierung finden Sie unter Windows-Registrierungsinformationen für erweiterte Benutzer.

Erstellen und Registrieren einer Microsoft Entra-ID-Anwendung

  • Wählen Sie im Azure PortalMicrosoft Entra ID>App Registrierungen>Neue Registrierungen aus.
    1. Geben Sie einen Namen an – Das Beispiel in diesem Artikel verwendet SQLServer.
    2. Klicken Sie auf Unterstützte Kontotypen, und verwenden Sie Accounts in this organization directory only (Nur Konten in diesem Organisationsverzeichnis).
    3. Legen Sie keinen Weiterleitungs-URI fest.
    4. Wählen Sie Registrieren aus.

Sehen Sie sich die folgende Anwendungsregistrierung an:

Screenshot: Registrieren einer App im Azure-Portal

Zuweisen von Anwendungsberechtigungen

Wählen Sie die neu erstellte Anwendung aus, und klicken Sie im Menü auf der linken Seite auf API-Berechtigungen.

  1. Klicken Sie auf Berechtigung hinzufügen>Microsoft Graph>Anwendungsberechtigungen.

    1. Wählen Sie Directory.Read.All aus.
    2. Wählen Sie Berechtigungen hinzufügen aus.

Oder:

  1. Klicken Sie auf Berechtigung hinzufügen>Microsoft Graph>Anwendungsberechtigungen.

    1. Wählen Sie Application.Read.All aus.

    2. Wählen Sie Group.Read.All aus.

    3. Wählen Sie User.Read.All aus.

    4. Wählen Sie Berechtigungen hinzufügen aus.

  2. Wählen Sie Administratoreinwilligung erteilen aus.

Screenshot, der zeigt, wie Sie die Zustimmung im Azure-Portal erteilen.

Hinweis

Um die Administratoreinwilligung zu den oben genannten Berechtigungen zu erteilen, benötigt Ihr Microsoft Entra-Konto die Rolle „Administrator für privilegierte Rollen“ oder höhere Berechtigungen.

Hochladen des Zertifikats

Laden Sie das im Abschnitt Obtain a certificate erstellte Zertifikat im .cer oder .pem Format in die Anwendungsregistrierung im Azure-Portal hoch.

Screenshot, der ein Zertifikat für die Anwendung im Azure-Portal hochlädt.

Hinzufügen von Registrierungswerten zum Aktivieren der Microsoft Entra-Authentifizierung für SQL Server

Aktualisieren Sie den Registrierungsschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication mit den folgenden Werten, um die Microsoft Entra-Authentifizierung für SQL Server zu aktivieren. Ein Beispiel für den Registrierungsschlüsselpfad für SQL Server 2022 ist HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.

Warnung

Schwerwiegende Probleme können auftreten, wenn Sie die Registrierung mit dem Registrierungs-Editor oder mit einer anderen Methode falsch ändern. Diese Probleme erfordern möglicherweise, dass Sie das Betriebssystem neu installieren. Microsoft kann nicht garantieren, dass diese Probleme behoben werden können. Ändern Sie die Registrierung auf eigene Gefahr.

  • Wenn der FederatedAuthentication Schlüssel nicht vorhanden ist, erstellen Sie ihn mit allen folgenden Werten.
  • Die ersten fünf aufgelisteten Einträge müssen mit den Werten aus der Anwendung aktualisiert werden, die Sie im vorherigen Abschnitt erstellt haben. Die restlichen Einträge sind Standardwerte.
  • Dies <sql-server-certificate-name> ist der Name des Zertifikats, das Sie im Abschnitt "Abrufen eines Zertifikats" erstellt und in Azure hochgeladen haben.
  • Dies <application-client-id> ist die Anwendungs-ID (Client-ID) aus der Anwendung, die Sie im Abschnitt Erstellen und Registrieren einer Microsoft Entra ID-Anwendung erstellt haben. Weitere Informationen zum Suchen der Client-ID finden Sie unter Client-ID.
  • Dies <tenant-id> ist die Mandanten-ID von Ihrem Azure-Mandanten. Sie finden die Mandanten-ID im Azure-Portal unter Microsoft Entra ID>Overview.
[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"=""

Weitere Informationen zur Windows-Registrierung, einschließlich Sichern, Bearbeiten und Wiederherstellen von Registrierungsschlüsseln, finden Sie unter Windows-Registrierungsinformationen für erweiterte Benutzer.

Testen der Authentifizierung

Nach dem Einrichten des Servers und der Bearbeitung der Registrierungswerte sollte die Microsoft Entra-Authentifizierung funktionsfähig sein. Testen Sie das Setup, indem Sie Anmeldeinformationen mithilfe der folgenden T-SQL-Befehle erstellen:

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

Häufig auftretende Probleme

Unter Umständen tritt der folgende Fehler auf:

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

Dieser Fehler kann auf Berechtigungsprobleme im Zertifikat zurückzuführen sein. Stellen Sie sicher, dass das SQL Server-Dienstkonto über Berechtigungen für das Zertifikat verfügt Read . Wenn das Problem weiterhin besteht, stellen Sie sicher, dass das Zertifikat über einen eindeutigen CN-Namen verfügt, der nicht mit anderen Zertifikaten im Zertifikatspeicher übereinstimmt.