Freigeben über


Aktivieren der Microsoft Entra-Authentifizierung für SQL Server auf Azure-VMs

Gilt für:SQL Server auf Azure-VMs

In diesem Artikel erfahren Sie, wie Sie die Authentifizierung mit Microsoft Entra ID (ehemals Azure Active Directory) für Ihren SQL Server auf virtuellen Azure-Computern (VMs) aktivieren.

Note

Es ist möglich, die Microsoft Entra-Authentifizierung für nicht registrierte Instanzen von SQL Server zu konfigurieren, z. B. wenn Mehrere SQL Server-Instanzen auf demselben virtuellen Computer vorhanden sind.

Overview

Ab SQL Server 2022 können Sie mithilfe einer der folgenden Microsoft Entra-Authentifizierungsmethoden eine Verbindung mit SQL Server auf einer Azure-VM herstellen:

  • Kennwort bietet Authentifizierung mit Microsoft Entra-Anmeldeinformationen
  • Universell mit MFA fügt Multifaktor-Authentifizierung
  • Integriert verwendet Verbundanbieter wie Active Directory-Verbunddienste (ADFS ), um SSO-Erfahrungen (Single Sign-On) zu ermöglichen.
  • Dienstprinzipal aktiviert Authentifizierung von Azure-Anwendungen
  • Verwaltete Identität aktiviert die Authentifizierung von Anwendungen, denen Microsoft Entra-Identitäten zugewiesen sind

Wenn Sie eine Microsoft Entra-Anmeldung für SQL Server erstellen und sich ein*e Benutzer*in mit dem Anmeldenamen anmeldet, verwendet SQL Server eine verwaltete Identität, um Microsoft Graph abzufragen. Wenn Sie die Microsoft Entra-Authentifizierung für Ihre SQL Server-Instanz auf einem virtuellen Azure-Computer aktivieren, müssen Sie eine verwaltete Identität bereitstellen, die SQL Server für die Kommunikation mit Microsoft Entra verwenden kann. Diese verwaltete Identität muss über die Berechtigung zum Abfragen von Microsoft Graph verfügen.

Wenn Sie eine verwaltete Identität für eine Ressource in Azure aktivieren, ist die Sicherheitsgrenze der Identität die Ressource, an die sie angefügt ist. Beispielsweise ist die Sicherheitsgrenze für einen virtuellen Computer, für den verwaltete Identitäten für Azure-Ressourcen aktiviert sind, dieser virtuelle Computer. Jeglicher Code, der auf dieser VM ausgeführt wird, kann den Endpunkt für verwaltete Identitäten aufrufen und Token anfordern. Beim Aktivieren einer verwalteten Identität für SQL Server auf Azure-VMs wird die Identität an den virtuellen Computer angefügt, sodass die Sicherheitsgrenze der virtuelle Computer ist. Die Benutzeroberfläche ähnelt der für die Arbeit mit anderen Ressourcen, die verwaltete Identitäten unterstützen. Weitere Informationen finden Sie unter Häufig gestellte Fragen zu verwalteten Identitäten.

Die vom System zugewiesenen und benutzerseitig zugewiesenen verwalteten Identitäten, die für die Microsoft Entra-Authentifizierung mit SQL Server auf Azure-VMs verwendet werden, bieten den folgenden Nutzen:

  • Vom System zugewiesene verwaltete Identität bietet einen vereinfachten Konfigurationsprozess. Da die verwaltete Identität dieselbe Lebensdauer wie der virtuelle Computer hat, muss sie nicht separat gelöscht werden, wenn Sie den virtuellen Computer löschen.
  • Dem Benutzer zugewiesene verwaltete Identität bietet Skalierbarkeit, da es an mehrere SQL-Server auf Azure-VMs angeschlossen und für die Microsoft Entra-Authentifizierung verwendet werden kann.

Informationen zu den ersten Schritten mit verwalteten Identitäten finden Sie unter Konfigurieren von verwalteten Identitäten für Azure-Ressourcen auf einem virtuellen Computer über das Azure-Portal.

Prerequisites

Um die Microsoft Entra-Authentifizierung auf Ihrer SQL Server-Instanz zu aktivieren, müssen folgende Voraussetzungen erfüllt sein:

Berechtigungen erteilen

Die verwaltete Identität, mit der Sie die Authentifizierung zwischen SQL Server und Microsoft Entra ID vereinfachen möchten, muss über die folgenden drei Microsoft Graph-Anwendungsberechtigungen (App-Rollen) verfügen: User.Read.All, GroupMember.Read.All und Application.Read.All.

Alternativ werden durch das Hinzufügen der verwalteten Identität zur Microsoft Entra-Rolle „Verzeichnisleseberechtigte“ ausreichende Berechtigungen erteilt. Eine weitere Möglichkeit zum Zuweisen der Rolle "Verzeichnisleser " zu einer verwalteten Identität ist das Zuweisen der Rolle "Verzeichnisleser" zu einer Gruppe in der Microsoft Entra-ID. Die Gruppenbesitzer*innen können dann die verwaltete Identität des virtuellen Computers als Mitglied dieser Gruppe hinzufügen. Dies minimiert die Einbeziehung von Microsoft Entra-Rollenadministratoren und delegiert die Verantwortung an die Gruppenbesitzer.

Hinzufügen einer verwalteten Identität zur Rolle

In diesem Abschnitt wird erläutert, wie Sie Ihre verwaltete Identität der Rolle Verzeichnisleser in Microsoft Entra ID hinzufügen. Sie müssen über Privilegierte Rollenadministratorberechtigungen verfügen, um Änderungen an den Rollenzuweisungen der Verzeichnisleseprogramme vorzunehmen. Wenn Sie nicht über ausreichende Berechtigungen verfügen, arbeiten Sie mit Ihrem Microsoft Entra-Administrator zusammen, um diese Schritte auszuführen.

Führen Sie die folgenden Schritte aus, um Ihrer verwalteten Identität die Rolle " Verzeichnisleser " zu gewähren:

  1. Öffnen Sie die Microsoft Entra-ID-Rollen und -Administratoren im Azure-Portal:

  2. Geben Sie Verzeichnisleser in das Suchfeld ein, und wählen Sie dann die Rolle "Verzeichnisleser" aus, um die Verzeichnisleser zu öffnen | Seite "Aufgaben" :

    Screenshot der Seite „Rollen und Administratoren“ im Azure-Portal, auf der nach der Rolle „Verzeichnisleseberechtigte“ gesucht und diese ausgewählt wird

  3. Wählen Sie auf der Seite Verzeichnisleseberechtigte | Zuweisungen die Option + Zuweisungen hinzufügen, um die Seite Zuweisungen hinzufügen zu öffnen.

    Screenshot der Seite „Verzeichnisleseberechtigte“ im Azure-Portal

  4. Wählen Sie auf der Seite "Aufgaben hinzufügen" unter "Mitglieder auswählen" die Option "Kein Mitglied auswählen" aus, um die Seite "Mitglied auswählen" zu öffnen.

    Screenshot der Seite „Zuweisung hinzufügen“ im Azure-Portal mit hervorgehobener Option „Kein Mitglied“

  5. Suchen Sie auf der Seite Mitglied auswählen nach dem Namen der verwalteten Identität, die Sie mit Ihrer SQL Server-VM verwenden möchten, und fügen Sie sie der Rolle Verzeichnisleseberechtigter hinzu. Suchen Sie bei systemseitig zugewiesenen verwalteten Identitäten nach dem Namen des virtuellen Computers. Verwenden Sie "Auswählen" , um die Identität zu bestätigen und zur Seite " Aufgaben hinzufügen " zurückzukehren.

    Screenshot: Suche nach Mitgliedern, die im Azure-Portal ausgewählt werden sollen

  6. Vergewissern Sie sich, dass Ihre ausgewählte Identität unter "Mitglieder auswählen " angezeigt wird, und wählen Sie dann "Weiter" aus.

    Screenshot der Seite „Zuweisung hinzufügen“ im Azure-Portal, auf der VM2 als Zuweisung hinzugefügt wurde

  7. Vergewissern Sie sich, dass der Zuordnungstyp auf "Aktiv" festgelegt ist und das Kontrollkästchen neben " Endgültig zugewiesen " aktiviert ist. Geben Sie eine geschäftliche Begründung ein, z. B. Hinzufügen von Rollenberechtigungen für Verzeichnisleseberechtigte zur systemseitig zugewiesenen Identität für VM2, und wählen Sie dann Zuweisen aus, um Ihre Einstellungen zu speichern und anschließend zur Seite Verzeichnisleseberechtigte | Zuweisungen zurückzukehren.

    Screenshot der Einstellungen für „Zuweisung hinzufügen“ im Azure-Portal

  8. Vergewissern Sie sich, dass auf der Seite Verzeichnisleseberechtigte | Zuweisungen die neu hinzugefügte Identität unter Verzeichnisleseberechtigte angezeigt wird.

    Screenshot der Seite „Verzeichnisleseberechtigte“ im Azure-Portal mit der VM-Zuweisung, die der Rolle hinzugefügt wurde

Hinzufügen von App-Rollenberechtigungen

Sie können Azure PowerShell verwenden, um App-Rollen einer verwalteten Identität zu gewähren. Führen Sie dazu die folgenden Schritte aus:

Note

Azure AD- und MSOnline PowerShell-Module sind ab dem 30. März 2024 veraltet. Weitere Informationen finden Sie im Update zur Einstellung. Nach diesem Datum wird die Unterstützung für diese Module auf die Migrationsunterstützung für das Microsoft Graph PowerShell-SDK und Sicherheitskorrekturen beschränkt. Die veralteten Module funktionieren weiterhin bis zum 30. März 2025.

Es wird empfohlen, für die Interaktion mit Microsoft Entra ID (früher Azure AD) zu Microsoft Graph PowerShell zu migrieren. Informationen zu allgemeinen Migrationsfragen finden Sie in den häufig gestellten Fragen zur Migration. Hinweis: Bei der Version 1.0.x von MSOnline können nach dem 30. Juni 2024 Unterbrechungen auftreten.

  1. Herstellen einer Verbindung mit Microsoft Graph

    Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
    
  2. Abrufen der verwalteten Identität

    $Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
    
  3. Zuweisen der User.Read.All-Rolle zur Identität:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    
  4. Zuweisen der GroupMember.Read.All-Rolle zur Identität:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    
  5. Zuweisen der Application.Read.All-Rolle zur Identität:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    

Sie können überprüfen, ob der verwalteten Identität Berechtigungen zugewiesen wurden, indem Sie die folgenden Schritte ausführen:

  1. Navigieren Sie im Azure-Portal zu Microsoft Entra ID.
  2. Wählen Sie Enterprise-Anwendungen und dann "Alle Anwendungen" unter "Verwalten" aus.
  3. Filtert den Anwendungstyp nach Managed identities.
  4. Wählen Sie die verwaltete Identität und dann "Berechtigungen " unter "Sicherheit" aus. Daraufhin sollten folgende Berechtigungen angezeigt werden: User.Read.All, GroupMember.Read.All und Application.Read.All.

Aktivieren der ausgehenden Kommunikation

Damit die Microsoft Entra-Authentifizierung funktioniert, benötigen Sie Folgendes:

  • Ausgehende Kommunikation von SQL Server zu Microsoft Entra ID und dem Microsoft Graph-Endpunkt
  • Ausgehende Kommunikation vom SQL-Client zu Microsoft Entra ID.

Die Azure-VM-Standardkonfigurationen ermöglichen die ausgehende Kommunikation zum Microsoft Graph-Endpunkt und Microsoft Entra ID, aber einige Benutzer*innen entscheiden sich dafür, die ausgehende Kommunikation entweder mithilfe einer Firewall auf Betriebssystemebene oder der Azure-VNet-Netzwerksicherheitsgruppe (NSG) einzuschränken.

Firewalls auf der SQL Server-VM und jedem SQL-Client müssen ausgehenden Datenverkehr an den Ports 80 und 443 zulassen.

Die Azure-VNet-NSG-Regel für das VNet, das Ihre SQL Server-VM hostet, sollte Folgendes aufweisen:

  • Ein Diensttag von AzureActiveDirectory
  • Ziel-Portbereiche von: 80, 443.
  • Aktion auf "Zulassen" festgelegt.
  • Eine hohe Priorität (was eine niedrige Zahl ist)

Aktivieren der Microsoft Entra-Authentifizierung für die registrierte Instanz

Wenn Sie Ihre SQL Server-Instanz mit der SQL IaaS-Agent-Erweiterung registrieren, können Sie die Microsoft Entra-Authentifizierung für die registrierte Instanz über das Azure-Portal, die Azure CLI oder PowerShell aktivieren. Die Verwendung des Azure-Portals oder der Azure CLI zum Verwalten Ihrer Instanz wird nur in der registrierten Instanz von SQL Server unterstützt.

Note

Nachdem die Microsoft Entra-Authentifizierung aktiviert wurde, können Sie die gleichen Schritte in diesem Abschnitt ausführen, um die Konfiguration so zu aktualisieren, dass eine andere verwaltete Identität verwendet wird.

Führen Sie die folgenden Schritte aus, um die Microsoft Entra-Authentifizierung für Ihrer SQL Server-VM zu aktivieren:

  1. Navigieren Sie im Azure-Portal zu Ihrer Ressource für virtuelle SQL-Computer.

  2. Wählen Sie Sicherheitskonfiguration unter Sicherheit aus.

  3. Wählen Sie "Aktivieren" unter "Microsoft Entra-Authentifizierung" aus.

  4. Wählen Sie den Typ der verwalteten Identität aus der Dropdownliste aus, entweder vom System zugewiesen oder vom Benutzer zugewiesen. Wenn Sie „benutzerseitig zugewiesen“ auswählen, wählen Sie in der angezeigten Dropdownliste Benutzerseitig zugewiesene verwaltete Identität die Identität aus, die Sie zum Authentifizieren bei SQL Server auf Ihrer Azure-VM verwenden möchten.

    Screenshot: Sicherheitskonfigurationsseite für SQL-VM im Azure-Portal mit ausgewählter Microsoft Entra-Authentifizierung.

Nachdem die Microsoft Entra-Authentifizierung aktiviert wurde, können Sie dieselben Schritte ausführen, um zu ändern, welche verwaltete Identität sich bei Ihrer SQL Server-VM authentifizieren kann.

Note

Der Fehler The selected managed identity does not have enough permissions for Microsoft Entra authentication zeigt an, dass der ausgewählten Identität Berechtigungen nicht ordnungsgemäß zugewiesen wurden. Überprüfen Sie den Abschnitt " Berechtigungen erteilen" , um die richtigen Berechtigungen zuzuweisen.

Aktivieren der Microsoft Entra-Authentifizierung für nicht registrierte Instanzen

Wenn Ihre SQL Server-Instanz nicht bei der SQL IaaS-Agent-Erweiterung registriert ist, z. B. wenn Sie über mehrere SQL Server-Instanzen auf demselben virtuellen Computer verfügen, können Sie die Microsoft Entra-Authentifizierung mithilfe von PowerShell aktivieren. Sie können die Microsoft Entra-Authentifizierung für bestimmte nicht registrierte Instanzen oder für alle Instanzen auf dem virtuellen Computer aktivieren.

Note

Um die Microsoft Entra-Authentifizierung mit nicht registrierten Instanzen auf SQL Server auf Azure-VMs zu verwenden, müssen Sie mindestens eine Instanz bei der SQL IaaS-Agent-Erweiterung registriert haben.

Berücksichtigen Sie bei Verwendung des Befehls zum Aktivieren der Set-AzVMExtension -ExtensionName "SqlIaasExtension" Microsoft Entra-Authentifizierung für eine SQL Server-Instanz Folgendes:

  • Berechtigungen der verwalteten Identität werden nur überprüft, wenn der Parameter CheckPermissions auf true gesetzt ist.
  • Geben Sie die Client-ID des Identitätsparameters ClientID an, um eine vom Benutzer zugewiesene verwaltete Identität zu verwenden. Wenn der ClientID Parameter leer ist, wird eine vom System zugewiesene verwaltete Identität verwendet.
  • Stellen Sie eine Liste der Instanzen im EnableForGivenInstances Parameter bereit, um die Microsoft Entra-Authentifizierung für bestimmte nicht registrierte Instanzen zu aktivieren. Andernfalls verwenden Sie den EnableForAllInstances-Parameter, um die Microsoft Entra-Authentifizierung für alle nicht registrierten Instanzen auf dem virtuellen Computer zu aktivieren.

Im folgenden Beispiel wird die Microsoft Entra-Authentifizierung für alle Instanzen auf dem virtuellen Computer mithilfe einer vom System zugewiesenen Identität aktiviert:

Set-AzVMExtension -ExtensionName "SqlIaasExtension" -ResourceGroupName $resourceGroupName -VMName $sqlVMName -Publisher "Microsoft.SqlServer.Management" -ExtensionType "SqlIaaSAgent" -TypeHandlerVersion 2.0 -Location $region -SettingString '{"ServerConfigurationsManagementSettings": {"AADAuthenticationSettings": {"ClientId":"", "EnableForAllInstances":true, "CheckPermissions":true}},"DeploymentTokenSettings":{"DeploymentToken":12345678}}'

Im folgenden Beispiel wird die Microsoft Entra-Authentifizierung für bestimmte nicht registrierte Instanzen mithilfe einer vom Benutzer zugewiesenen Identität aktiviert:

Set-AzVMExtension -ExtensionName "SqlIaasExtension" -ResourceGroupName $resourceGroupName -VMName $sqlVMName -Publisher "Microsoft.SqlServer.Management" -ExtensionType "SqlIaaSAgent" -TypeHandlerVersion 2.0 -Location $region -SettingString '{"ServerConfigurationsManagementSettings": {"AADAuthenticationSettings": {"ClientId":$clientId, "EnableForGivenInstances":["MSSQLSERVER","MSSQLSERVER01"], "CheckPermissions":true}},"DeploymentTokenSettings":{"DeploymentToken":12345678}}'

Logins und Benutzer*innen erstellen

Führen Sie die Schritte im Microsoft Entra-Lernprogramm aus, um Anmeldeinformationen und Benutzer für die verwaltete Identität zu erstellen.

Herstellen einer Verbindung mit Ihrer Instanz

Befolgen Sie die Anweisungen im Microsoft Entra-Lernprogramm , um mithilfe der Microsoft Entra-Authentifizierung eine Verbindung mit Ihrer SQL Server-Instanz herzustellen.

Limitations

Beachten Sie die folgenden Einschränkungen:

  • Die Microsoft Entra-Authentifizierung wird nur mit SQL-Server 2022 in Ausführung auf Windows-VMs unterstützt, die mit dem SQL IaaS Agent-Erweiterung, die in einer beliebigen Cloud bereitgestellt werden.
  • Die Verwaltung der Microsoft Entra-Authentifizierung im Azure-Portal ist nur für Instanzen verfügbar, die von der SQL IaaS-Agent-Erweiterung unterstützt werden, z. B. einer Standardinstanz oder einer einzelnen benannten Instanz. Verwenden Sie die Azure CLI oder PowerShell, um zusätzliche Instanzen der Microsoft Entra-Authentifizierung auf der SQL Server-VM zu verwalten, die nicht bei der SQL IaaS-Agent-Erweiterung registriert sind.
  • Die Verwendung der Microsoft Entra-Authentifizierung mit Failover-Cluster-Instanzen wird nicht unterstützt.
  • Die Identität, die Sie bei SQL Server authentifizieren möchten, muss entweder über die Rolle " Verzeichnisleser " in der Microsoft Entra-ID oder die folgenden drei Microsoft Graph-Anwendungsberechtigungen (App-Rollen) verfügen: User.Read.All, GroupMember.Read.Allund Application.Read.All.
  • Sobald die Microsoft Entra-Authentifizierung aktiviert ist, können Sie sie nicht mehr deaktivieren.
  • Derzeit wird die Authentifizierung bei SQL Server auf Azure-VMs über die Microsoft Entra-Authentifizierung mit der FIDO2-Methode nicht unterstützt.

Nächste Schritte

Überprüfen Sie die bewährten Sicherheitsmethoden für SQL Server.

Weitere Informationen zum Ausführen von virtuellen Azure-Computern mit SQL Server finden Sie in der Übersicht zu virtuellen Azure-Computern mit SQL Server. Falls Sie Fragen zu SQL Server-VMs haben, finden Sie in den häufig gestellten Fragen weitere Informationen.

Weitere Informationen finden Sie in auch in anderen Artikeln dieser Reihe zu den bewährten Methoden: