Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
- 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.
Verwenden Sie einen eindeutigen CN-Namen für das Zertifikat, das nicht mit den im Zertifikatspeicher installierten Zertifikaten übereinstimmt.
Installieren Sie das Zertifikat im Computerzertifikatspeicher. Weitere Informationen finden Sie unter Importieren des Zertifikats in den lokalen Computerspeicher.
Fügen Sie für das SQL Server-Dienstkonto
ReadBerechtigungen auf dem Zertifikat hinzu.
Installieren von adal.dll
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.
Stellen Sie nach der Installation des Microsoft OLE DB-Treibers für SQL Server sicher, dass sichadal.dll im Ordner
C:\windows\system32befindet.Sie sollten auch über den Registrierungsschlüssel
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirmit dem WertC:\windows\system32\adal.dllverfügen. Wenn sie nicht vorhanden ist, erstellen Sie sie.
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.
- Geben Sie einen Namen an – Das Beispiel in diesem Artikel verwendet SQLServer.
- Klicken Sie auf Unterstützte Kontotypen, und verwenden Sie Accounts in this organization directory only (Nur Konten in diesem Organisationsverzeichnis).
- Legen Sie keinen Weiterleitungs-URI fest.
- Wählen Sie Registrieren aus.
Sehen Sie sich die folgende Anwendungsregistrierung an:
Zuweisen von Anwendungsberechtigungen
Wählen Sie die neu erstellte Anwendung aus, und klicken Sie im Menü auf der linken Seite auf API-Berechtigungen.
Klicken Sie auf Berechtigung hinzufügen>Microsoft Graph>Anwendungsberechtigungen.
- Wählen Sie Directory.Read.All aus.
- Wählen Sie Berechtigungen hinzufügen aus.
Oder:
Klicken Sie auf Berechtigung hinzufügen>Microsoft Graph>Anwendungsberechtigungen.
Wählen Sie Application.Read.All aus.
Wählen Sie Group.Read.All aus.
Wählen Sie User.Read.All aus.
Wählen Sie Berechtigungen hinzufügen aus.
Wählen Sie Administratoreinwilligung erteilen aus.
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.
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
FederatedAuthenticationSchlü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.