Tutorial: Einrichten der Microsoft Entra-Authentifizierung für SQL Server

Gilt für: SQL Server 2022 (16.x)

In diesem Artikel wird ein schrittweiser Prozess zum Einrichten der Authentifizierung mit Microsoft Entra ID beschrieben und die Verwendung verschiedener Microsoft Entra-Authentifizierungsmethoden dargelegt.

Hinweis

Microsoft Entra ID war bisher unter Azure Active Directory (Azure AD) bekannt.

In diesem Tutorial lernen Sie Folgendes:

  • Eine Microsoft Entra-Anwendung erstellen und registrieren
  • Zuweisen von Berechtigungen für die Microsoft Entra-Anwendung
  • Erstellen und Zuweisen eines Zertifikats
  • Konfigurieren der Microsoft Entra-Authentifizierung für SQL Server über das Azure-Portal
  • Erstellen von Anmeldeinformationen und Benutzer*innen
  • Herstellen einer Verbindung mit einer unterstützten Authentifizierungsmethode

Voraussetzungen

Voraussetzungen für die Authentifizierung

Hinweis

Neu implementierte erweiterte Funktionen in Azure ermöglichen die automatische Erstellung des Azure Key Vault-Zertifikats und der Microsoft Entra-Anwendung während der Einrichtung eines Microsoft Entra-Administrators für SQL Server. Mehr Informationen finden sie im Tutorial: Verwenden der Automatisierung zum Einrichten der Microsoft Entra-Administratoren für SQL Server

  • Microsoft Entra-Anwendungsregistrierung für SQL Server Durch das Registrieren einer SQL Server-Instanz als Microsoft Entra-Anwendung kann die Instanz die Microsoft Entra-ID abfragen und die Microsoft Entra-Anwendung im Auftrag der SQL Server-Instanz authentifizieren. Die Anwendungsregistrierung erfordert auch einige Berechtigungen, die von SQL Server für bestimmte Abfragen verwendet werden.

  • SQL Server verwendet ein Zertifikat für diese Authentifizierung, das in Azure Key Vault (AKV) gespeichert wird. Der Azure Arc-Agent lädt das Zertifikat auf den Hostcomputer der SQL Server-Instanz herunter.

Warnung

Verbindungen, die mit Microsoft Entra-ID authentifiziert wurden, sind immer verschlüsselt. Wenn SQL Server ein selbstsigniertes Zertifikat verwendet, müssen Sie der Verbindungszeichenfolge trust server cert = true hinzufügen. SQL Server- und Windows-authentifizierte Verbindungen erfordern keine Verschlüsselung, dies wird jedoch dringend empfohlen.

Eine Microsoft Entra-Anwendung erstellen und registrieren

  1. Wählen Sie im Azure PortalMicrosoft Entra ID>App Registrierungen>Neue Registrierungen aus.
    1. Geben Sie einen Namen an – Im Beispiel in diesem Artikel wird SQLServerCTP1 verwendet.
    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 of registering application in the Azure portal.

Erteilen 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.
  2. Klicken Sie auf Berechtigung hinzufügen>Microsoft Graph>Delegierte Berechtigungen.

    1. Wählen Sie Application.Read.All aus.
    2. Wählen Sie Directory.AccessAsUser.All aus.
    3. Wählen Sie Group.Read.All aus.
    4. Wählen Sie User.Read.All aus.
    5. Wählen Sie Berechtigungen hinzufügen aus.
  3. Wählen Sie Administratoreinwilligung erteilen aus.

Screenshot of application permissions in the Azure portal.

Hinweis

Um die Administratoreinwilligung zu den oben genannten Berechtigungen zu erteilen, erfordert Ihr Microsoft Entra Konto die Rolle Globaler Administrator oder Administrator für privilegierte Rollen.

Erstellen und Zuweisen eines Zertifikats

  1. Navigieren Sie zum Azure-Portal, klicken Sie auf Schlüsseltresore, und wählen Sie den Schlüsseltresor aus, den Sie verwenden möchten. Alternativ können Sie einen neuen erstellen. Klicken Sie auf Zertifikate>Generieren/Importieren.

    1. Verwenden Sie für Methode der Zertifikaterstellung die Option Generieren.

    2. Fügen Sie einen Zertifikatnamen und einen Antragsteller hinzu.

    3. Der empfohlene Gültigkeitszeitraum beträgt höchstens zwölf Monate. Für die übrigen Werte können Sie die Standardwerte übernehmen.

    4. Klicken Sie auf Erstellen.

    Screenshot of creating certificate in the Azure portal.

    Hinweis

    Sobald das Zertifikat erstellt wurde, wird möglicherweise angezeigt, dass es deaktiviert ist. Aktualisieren Sie die Website, und das Zertifikat wird als aktiviert angezeigt.

  2. Navigieren Sie zum neuen Zertifikat, und wählen Sie die Zeile für die neueste Version des Zertifikats aus. Klicken Sie auf Im CER-Format herunterladen, um den öffentlichen Schlüssel des Zertifikats zu speichern.

    Screenshot of certificate in the Azure portal where you can view and download the certificate.

    Hinweis

    Dies muss nicht auf dem SQL Server-Host ausgeführt werden. Dieser Schritt wird vielmehr für jeden Client ausgeführt, der für den nächsten Schritt auf das Azure-Portal zugreift.

  3. Navigieren Sie im Azure-Portal zur App-Registrierung, die zuvor erstellt wurde, und klicken Sie auf die Zertifikate-Liste

    1. Klicken Sie auf Zertifikat hochladen.
    2. Wählen Sie den öffentlichen Schlüssel (CER-Datei) aus, den Sie im letzten Schritt heruntergeladen haben.
    3. Wählen Sie Hinzufügen aus.

    Screenshot of certificate and secrets menu in the Azure portal.

  4. Navigieren Sie im Azure-Portal zur Azure Key Vault-Instanz, in der das Zertifikat gespeichert ist, und klicken Sie auf Zugriffsrichtlinien.

    1. Klicken Sie auf Erstellen.

    2. Wählen Sie für die Geheimnisberechtigungen die Optionen Get und List aus.

    3. Wählen Sie für ZertifikatsberechtigungenAbrufen und Liste aus.

    4. Wählen Sie Weiter aus.

    5. Suchen Sie auf der Seite Prinzipal den Namen der Azure Arc-Instanz Ihres Computers, der dem Hostnamen des SQL Server-Hosts entspricht.

      Screenshot of Azure Arc server resource in portal.

    6. Überspringen Sie die Seite Anwendung (optional) indem Sie zweimal auf Weiter klicken, oder Prüfen und erstellen auswählen.

      Stellen Sie sicher, dass die „Objekt-ID“ des Prinzipals mit der Prinzipal-ID der verwalteten Identität übereinstimmt, die der Instanz zugewiesen ist.

      Screenshot of Azure portal to review and create access policy.

      Um dies zu bestätigen, wechseln Sie zur Ressourcenseite, und wählen Sie oben rechts im Feld Essentials in der Übersicht die JSON-Ansicht aus. Unter Identität finden Sie die principalId

      Screenshot of portal control of JSON view of machine definition.

    7. Klicken Sie auf Erstellen.

    Sie müssen auf Erstellen klicken, um sicherzustellen, dass die Berechtigungen angewendet werden. Um sicherzustellen, dass Berechtigungen gespeichert wurden, aktualisieren Sie das Browserfenster, und überprüfen Sie, ob die Zeile für die Azure Arc-Instanz noch vorhanden ist.

    Screenshot of adding access policy to the key vault in the Azure portal.

Konfigurieren der Microsoft Entra-Authentifizierung für SQL Server über das Azure-Portal

Hinweis

Die Verwendung der Azure CLI-, PowerShell- oder ARM-Vorlage zum Einrichten eines Microsoft Entra-Administrators für SQL Server ist verfügbar.

  1. Wechseln Sie zum Azure-Portal, klicken Sie auf SQL Server – Azure Arc, und wählen Sie die Instanz für Ihren SQL Server-Host aus.

  2. Überprüfen Sie den Status Ihrer SQL Server – Azure Arc-Ressource, und testen Sie deren Verbindung, indem Sie zum Menü Eigenschaften navigieren. Weitere Informationen finden Sie unter Überprüfen der „SQL Server – Azure Arc“-Ressourcen.

  3. Wählen Sie im Ressourcenmenü unter Einstellungen die Option Microsoft Entra ID und Purview aus.

  4. Wählen Sie Administrator festlegen, um den Bereich Microsoft Entra ID zu öffnen, und wählen Sie ein Konto aus, das als Administratoranmeldung für SQL Server festgelegt werden soll.

  5. Klicken Sie auf Customer-managed cert (Benutzerseitig verwaltetes Zertifikat) und Zertifikat auswählen.

  6. Klicken Sie auf Zertifikat ändern, und wählen Sie Ihre AKV-Instanz und das Zertifikat aus, das Sie zuvor im neuen Bereich erstellt haben.

  7. Klicken Sie auf Customer-managed app registration (Kundenseitig verwaltete App-Registrierung).

  8. Klicken Sie auf Change app registration (App-Registrierung ändern), und wählen Sie die zuvor erstellte App-Registrierung aus.

  9. Wählen Sie Speichern. Dadurch wird eine Anforderung an den Arc-Server-Agent gesendet, der die Microsoft Entra-Authentifizierung für diese SQL Server-Instanz konfiguriert.

    Screenshot of setting Microsoft Entra authentication in the Azure portal.

    Es dauert mehrere Minuten, um Zertifikate herunterzuladen und Einstellungen zu konfigurieren. Nachdem Sie im Azure-Portal alle Parameter festgelegt und auf Speichern geklickt haben, wird möglicherweise die folgende Meldung angezeigt: SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing. Warten Sie, bis der Speichervorgang mit Saved successfully bestätigt wurde, bevor Sie einen Microsoft Entra-Anmeldeversuch starten.

    Der Azure Arc-Server-Agent kann nur aktualisiert werden, wenn die vorherige Aktion abgeschlossen wurde. Dies bedeutet, dass das Speichern einer neuen Microsoft Entra-Konfiguration vor Abschluss der letzten Konfiguration zu einem Fehler führen kann. Wenn nach dem Klicken auf Speichern die Meldung Extended call failed (Erweiterter Aufruf fehlgeschlagen) angezeigt wird, warten Sie fünf Minuten, und versuchen Sie es noch mal.

    Hinweis

    Nachdem der Microsoft Entra-Administratoranmeldung die sysadmin Rolle gewährt wurde, wird beim Ändern des Microsoft Entra-Administrators im Azure-Portal die vorherige Anmeldung, die sysadmin bleibt, nicht entfernt. Um die Anmeldung zu entfernen, muss sie manuell gelöscht werden.

    Die Änderung des Microsoft Entra-Administrators für die SQL Server-Instanz erfolgt ohne einen Serverneustart, sobald der Prozess mit dem Azure Arc-Agent von SQL Server abgeschlossen wurde. Damit der neue Administrator in sys.server_principals angezeigt werden kann, muss die SQL Server-Instanz neu gestartet werden, und bis dahin wird der alte Administrator angezeigt. Der aktuelle Microsoft Entra-Administrator kann im Azure-Portal eingecheckt werden.

Erstellen von Anmeldeinformationen und Benutzer*innen

Nachdem der Azure Arc-Agent auf dem SQL Server-Host seinen Vorgang abgeschlossen hat, ist das im Menü Microsoft Entra ID im Portal ausgewählte Administratorkonto ein sysadmin in der SQL Server-Instanz. Melden Sie sich mit dem Microsoft Entra-Administratorkonto an, das über sysadmin Berechtigungen auf dem Server verfügt, indem Sie einen Client wie SSMS oder Azure Data Studio verwenden.

Hinweis

Alle Verbindungen mit SQL Server, die mit der Microsoft Entra-Authentifizierung hergestellt werden, erfordern eine verschlüsselte Verbindung. Wenn der Datenbankadministrator (DBA) kein vertrauenswürdiges SSL-/TLS-Zertifikat für den Server eingerichtet hat, tritt bei Anmeldungen wahrscheinlich ein Fehler mit der Meldung The certificate chain was issued by an authority that is not trusted. (Die Zertifikatkette wurde von einer nicht vertrauenswürdigen Zertifizierungsstelle ausgestellt) auf. Um dieses Problem zu beheben, können Sie entweder die SQL Server-Instanz so konfigurieren, dass ein SSL-/TLS-Zertifikat verwendet wird, das der Client als vertrauenswürdig einstuft, oder Sie klicken in den erweiterten Verbindungseigenschaften auf Vertrauenswürdiges Serverzertifikat. Weitere Informationen finden Sie unter Aktivieren von verschlüsselten Verbindungen mit der Datenbank-Engine.

Syntax zum Erstellen von Anmeldungen (Create Login)

Die gleiche Syntax, die zum Erstellen von Microsoft Entra-Anmeldungen und Benutzer Azure SQL-Datenbank und Azure SQL Managed Instance genutzt wird, kann jetzt auch für SQL Server verwendet werden.

Hinweis

Auf SQL Server kann jedes Konto, das über die Berechtigung ALTER ANY LOGIN oder ALTER ANY USER verfügt, Microsoft Entra-Anmeldungen bzw. Benutzer erstellen. Das Konto muss keine Microsoft Entra-Anmeldung sein.

Führen Sie zum Erstellen einer Anmeldung für ein Microsoft Entra-Konto den folgenden T-SQL-Befehl in der master Datenbank aus:

CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;

Für Benutzer muss der Prinzipalname das Format user@tenant.com aufweisen. In Microsoft Entra-ID ist dies der Benutzerprinzipalname. Bei allen anderen Kontotypen, z. B. Microsoft Entra-Gruppen oder -Anwendungen, ist der Prinzipalname der Name des Microsoft Entra-Objekts.

Dies sind einige Beispiele:

-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO

Führen Sie zum Auflisten der Microsoft Entra-Anmeldungen in der master-Datenbank den T-SQL-Befehl aus:

SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');

Um Microsoft Entra-Benutzer die Berechtigungen der sysadmin-Rolle zu gewähren (z. B. admin@contoso.com), führen Sie die folgenden Befehle in master aus:

CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER; 
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO

Die sp_addsrvrolemember gespeicherte Prozedur muss als Mitglied der SQL Server-Serverrolle sysadmin ausgeführt werden.

Syntax zum Erstellen von Benutzern (Create User)

Sie können einen Datenbankbenutzer aus Microsoft Entra ID entweder als Datenbankbenutzer, der mit einem Serverprinzipal (Anmeldung) verbunden ist, oder als enthaltenen Datenbankbenutzer erstellen.

Verwenden Sie die folgende Syntax, um einen Microsoft Entra-Benutzer aus einer Microsoft Entra-Anmeldung in einer SQL Server Datenbank zu erstellen.

CREATE USER [principal_name] FROM LOGIN [principal_name];

Die principal_name-Syntax entspricht der Syntax für Anmeldungen.

Im Folgenden finden Sie einige Beispiele:

-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO

Zum Erstellen eines Microsoft Entra-Datenbankbenutzers, der nicht an eine Serveranmeldung gebunden ist, kann die folgende Syntax ausgeführt werden:

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

Verwenden Sie den Namen der Microsoft Entra-Gruppe oder den Namen der Microsoft Entra-Anwendung wie <principal name> beim Erstellen eines Microsoft Entra-Datenbankbenutzers aus einer Gruppe oder Anwendung.

Im Folgenden finden Sie einige Beispiele:

-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO

Führen Sie zum Auflisten der in der Datenbank erstellten Benutzer*innen den folgenden T-SQL-Befehl aus:

SELECT * FROM sys.database_principals;

Ein neuer Datenbankbenutzer erhält standardmäßig die Berechtigung Verbinden. Alle anderen SQL Server-Berechtigungen müssen explizit von Personen mit den entsprechenden Berechtigungen gewährt werden.

Microsoft Entra Gastzugriff

Die CREATE LOGIN- und CREATE USER-Syntax unterstützt auch Gastbenutzer*innen. Wenn beispielsweise testuser@outlook.com zum Mandanten contoso.com eingeladen wird, kann dieser als Anmeldung bei SQL Server mit der gleichen Syntax wie beim Erstellen eines anderen Microsoft Entra-Benutzers oder -Logins hinzugefügt werden. Verwenden Sie beim Erstellen von Gastbenutzern und -anmeldungen die ursprünglichen E-Mails des Gastkontos, nicht den Benutzerprinzipalnamen im Mandanten. In den Beispielen wird outlook.com bereitgestellt, obwohl das Konto im contoso.com-Mandanten registriert ist.

Erstellen von Gastbenutzer mit einer vorhandenen Anmeldung

CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];

Erstellen von Gastbenutzer*innen als eigenständige Benutzer*innen

CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;

Herstellen einer Verbindung mit einer unterstützten Authentifizierungsmethode

SQL Server unterstützt verschiedene Microsoft Entra-Authentifizierungsmethoden:

  • Standard
  • Benutzername und Kennwort
  • Integriert
  • Universal mit Multi-Faktor-Authentifizierung
  • Dienstprinzipal
  • Verwaltete Identität
  • Zugriffstoken

Verwenden Sie eine dieser Methoden, um eine Verbindung mit der SQL Server-Instanz herzustellen. Weitere Informationen finden Sie unter Microsoft Entra-Authentifizierung für SQL Server.

Authentifizierungsbeispiel mit SSMS

Hinweis

Während Microsoft Entra-ID der neue Name für Azure Active Directory (Azure AD) ist, bleibt Azure AD in einigen fest kodierten Elementen wie Benutzeroberfläche-Feldern, Verbindungsanbietern, Fehlercodes und Cmdlets erhalten, um Störungen in bestehenden Umgebungen zu vermeiden. In diesem Artikel sind die beiden Namen austauschbar.

Nachfolgend finden Sie die Momentaufnahme der SQL Server Management Studio (SSMS)-Verbindungsseite, wobei die Authentifizierungsmethode Azure Active Directory: universell mit MFA verwendet wird.

Screenshot SSMS showing the Connect to Server window.

Während des Authentifizierungsprozesses muss eine Datenbank, in der die Benutzer*innen erstellt wurden, explizit in SSMS angegeben werden. Erweitern Sie Options > Connection Properties > Connect to database: database_name (Optionen und Verbindungseigenschaften > Verbindung mit Datenbank herstellen).

Weitere Informationen finden Sie unter Verwenden der Multi-Faktor-Authentifizierung von Microsoft Entra.

SQL Server-Tools, die die Microsoft Entra-Authentifizierung für Azure SQL unterstützen, werden auch für SQL Server 2022 (16.x) unterstützt.

Speicherort, an dem Microsoft Entra-ID-Parameter gespeichert werden

Warnung

Microsoft Entra ID-Parameter werden vom Azure Arc-Agent konfiguriert und sollten nicht manuell neu konfiguriert werden.

Unter Linux werden Microsoft Entra ID-Parameter in mssql-conf gespeichert. Weitere Informationen zu den Konfigurationsoptionen unter Linux finden Sie unter Konfigurieren von SQL Server für Linux mithilfe des mssql-conf-Tools.

Bekannte Probleme

  • Die Aktualisierung des Zertifikats wird nicht weitergegeben:
    • Sobald die Microsoft Entra-Authentifizierung für SQL Server konfiguriert ist, kann es vorkommen, dass die Aktualisierung des Zertifikats in der Microsoft Entra-ID and Purview im Bereich der SQL Server-Azure Arc-Ressource nicht vollständig übertragen wird. Dies führt dazu, dass der Speichervorgang zwar erfolgreich ist, aber weiterhin der alte Wert angezeigt wird. Gehen Sie wie folgt vor, um das Zertifikat zu aktualisieren:

      • Klicken Sie auf Administrator entfernen.
      • Wählen Sie Speichern.
      • Klicken Sie auf Administrator festlegen, und konfigurieren Sie die Microsoft Entra-Authentifizierung mit dem neuen Zertifikat neu.
      • Wählen Sie Speichern.

Weitere Informationen