Freigeben über


Verwaltete Identitäten in Microsoft Entra für Azure SQL

Gilt für: Azure SQL-Datenbank Azure SQL Managed Instance

Microsoft Entra ID (früher Azure Active Directory) unterstützt zwei Arten von verwalteten Identitäten: systemseitig zugewiesene verwaltete Identitäten (System Assigned Managed Identity, SMI) und benutzerseitig zugewiesene verwaltete Identitäten (User Assigned Managed Identity, UMI). Weitere Informationen finden Sie unter Arten von verwalteten Identitäten.

Eine SMI wird einer Azure SQL Managed Instance-Instanz automatisch zugewiesen, wenn diese erstellt wird. Wenn Sie die Microsoft Entra-Authentifizierung mit Azure SQL-Datenbank nutzen, müssen Sie eine SMI zuweisen, wenn Azure-Dienstprinzipale zum Erstellen von Microsoft Entra-Benutzern in SQL-Datenbank verwendet werden.

Zuvor konnte einer Azure SQL Managed Instance-Instanz oder SQL-Datenbank-Serverinstanz nur eine SMI zugewiesen werden. Nun kann SQL Managed Instance oder SQL-Datenbank eine UMI als Instanz bzw. Serveridentität zugewiesen werden.

Zusätzlich zur Verwendung einer UMI und SMI als Instanz bzw. Serveridentität können Sie diese auch für den Zugriff auf die Datenbank mithilfe der SQL-Verbindungszeichenfolgenoption Authentication=Active Directory Managed Identity verwenden. Sie müssen mithilfe der CREATE USER-Anweisung einen SQL-Benutzer aus der verwalteten Identität in der Zieldatenbank erstellen. Weitere Informationen finden Sie unter Verwenden der Microsoft Entra-Authentifizierung mit SqlClient.

Lesen Sie den Abschnitt Abrufen oder Festlegen einer verwalteten Identität für einen logischen Server oder eine verwaltete Instanz weiter unten in diesem Artikel, um herauszufinden, wie Sie die aktuellen UMI(s) oder SMI(s) für Azure SQL Managed Instance oder Azure SQL-Datenbank abrufen.

Vorteile der Verwendung benutzerseitig zugewiesener verwalteter Identitäten

Die Verwendung einer UMI als Serveridentität bietet mehrere Vorteile:

  • Benutzer*innen haben die Flexibilität, eigene UMIs für einen Mandanten zu erstellen und zu verwalten. Sie können UMIs als Serveridentitäten für Azure SQL verwenden. Eine UMI wird von den Benutzer*innen verwaltet, während eine SMI eindeutig pro Server definiert ist und vom System zugewiesen wird.

  • In der Vergangenheit war die Microsoft Entra ID-Rolle Verzeichnisleseberechtigte erforderlich, wenn Sie eine SMI als Server- oder Instanzidentität verwenden wollten. Mit der Einführung des Zugriffs auf Microsoft Entra ID über Microsoft Graph können Benutzer*innen, die Bedenken hinsichtlich der Erteilung hoher Berechtigungen wie der Rolle „Verzeichnisleseberechtigte“ für die SMI oder UMI haben, alternativ geringere Berechtigungen erteilen, sodass die Server- bzw. Instanzidentität auf Microsoft Graph zugreifen kann.

    Weitere Informationen zum Erteilen von Berechtigungen der Rolle „Verzeichnisleseberechtigte“ und deren Funktion finden Sie unter Rolle „Verzeichnisleseberechtigte“ in Microsoft Entra ID für Azure SQL.

  • Benutzer*innen können eine bestimmte UMI als Server- oder Instanzidentität für alle Datenbanken oder verwalteten Instanzen im Mandanten auswählen. Alternativ können sie verschiedenen Servern oder Instanzen mehrere UMIs zuweisen.

    UMIs können auf verschiedenen Servern für verschiedene Features verwendet werden. Beispielsweise kann eine UMI auf einem Server für Transparent Data Encryption (TDE) verwendet werden, und eine UMI kann auf einem anderen Server für die Microsoft Entra-Authentifizierung genutzt werden.

  • Sie benötigen eine UMI, um einen logischen Server in Azure zu erstellen, der mithilfe von TDE mit kundenseitig verwalteten Schlüsseln (CMKs) konfiguriert ist. Weitere Informationen finden Sie unter Kundenseitig verwaltete transparente Datenverschlüsselung unter Verwendung einer benutzerseitig zugewiesenen verwalteten Identität.

  • UMIs sind unabhängig von logischen Servern oder verwalteten Instanzen. Wenn ein logischer Server oder eine Instanz gelöscht wird, wird die SMI ebenfalls gelöscht. UMIs werden nicht mit dem Server gelöscht.

Hinweis

Sie müssen die Instanzidentität (SMI oder UMI) aktivieren, damit die Microsoft Entra-Authentifizierung in SQL Managed Instance unterstützt wird. Für SQL-Datenbank ist das Aktivieren der Serveridentität optional und nur erforderlich, wenn ein Microsoft Entra-Dienstprinzipal (Microsoft Entra-Anwendung) das Erstellen und Verwalten von Microsoft Entra-Benutzern, -Gruppen oder -Anwendungen auf dem Server überwacht. Weitere Informationen finden Sie unter Microsoft Entra-Dienstprinzipal mit Azure SQL.

Erstellen einer benutzerseitig zugewiesenen verwalteten Identität

Weitere Informationen zum Erstellen einer UMI finden Sie unter Verwalten von benutzerseitig zugewiesenen verwalteten Identitäten.

Berechtigungen

Nachdem die UMI erstellt wurde, sind einige Berechtigungen erforderlich, damit die UMI aus Microsoft Graph als Serveridentität lesen kann. Erteilen Sie die folgenden Berechtigungen, oder weisen Sie der UMI die Rolle Verzeichnisleseberechtigte zu.

Diese Berechtigungen sollten vor der Bereitstellung eines logischen Servers oder einer verwalteten Instanz erteilt werden. Nachdem Sie der UMI die Berechtigungen erteilt haben, werden sie für alle Server oder Instanzen aktiviert, die mit der als Serveridentität zugewiesenen UMI erstellt werden.

Wichtig

Nur ein Globaler Administrator oder ein Privilegierter Rollenadministrator kann diese Rechte vergeben.

  • User.Read.All: Ermöglicht den Zugriff auf Microsoft Entra-Benutzerinformationen.
  • GroupMember.Read.All: Ermöglicht den Zugriff auf Microsoft Entra-Gruppeninformationen.
  • Application.Read.ALL: Ermöglicht den Zugriff auf Informationen zu Microsoft Entra-Dienstprinzipalen (Anwendung).

Erteilen von Berechtigungen

Das folgende PowerShell-Beispielskript erteilt einer verwalteten Identität die erforderlichen Berechtigungen. In diesem Beispiel werden der benutzerseitig zugewiesenen verwalteten Identität umiservertest Berechtigungen zugewiesen.

Um das Skript auszuführen, müssen Sie sich als Benutzer*in mit der Rolle „Globaler Administrator“ oder „Administrator für privilegierte Rollen“ anmelden.

Das Skript gewährt einer verwalteten Identität die Berechtigungen User.Read.All, GroupMember.Read.All und Application.Read.ALL für den Zugriff auf Microsoft Graph.

# Script to assign permissions to an existing UMI 
# The following required Microsoft Graph permissions will be assigned: 
#   User.Read.All
#   GroupMember.Read.All
#   Application.Read.All

Import-Module Microsoft.Graph.Authentication
Import-Module Microsoft.Graph.Applications

$tenantId = "<tenantId>"        # Your tenant ID
$MSIName = "<managedIdentity>"; # Name of your managed identity

# Log in as a user with the "Global Administrator" or "Privileged Role Administrator" role
Connect-MgGraph -TenantId $tenantId -Scopes "AppRoleAssignment.ReadWrite.All,Application.Read.All"

# Search for Microsoft Graph
$MSGraphSP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'";
$MSGraphSP

# Sample Output

# DisplayName     Id                                   AppId                                SignInAudience      ServicePrincipalType
# -----------     --                                   -----                                --------------      --------------------
# Microsoft Graph 47d73278-e43c-4cc2-a606-c500b66883ef 00000003-0000-0000-c000-000000000000 AzureADMultipleOrgs Application

$MSI = Get-MgServicePrincipal -Filter "DisplayName eq '$MSIName'" 
if($MSI.Count -gt 1)
{ 
Write-Output "More than 1 principal found with that name, please find your principal and copy its object ID. Replace the above line with the syntax $MSI = Get-MgServicePrincipal -ServicePrincipalId <your_object_id>"
Exit
}

# Get required permissions
$Permissions = @(
  "User.Read.All"
  "GroupMember.Read.All"
  "Application.Read.All"
)

# Find app permissions within Microsoft Graph application
$MSGraphAppRoles = $MSGraphSP.AppRoles | Where-Object {($_.Value -in $Permissions)}

# Assign the managed identity app roles for each permission
foreach($AppRole in $MSGraphAppRoles)
{
    $AppRoleAssignment = @{
	    principalId = $MSI.Id
	    resourceId = $MSGraphSP.Id
	    appRoleId = $AppRole.Id
    }

    New-MgServicePrincipalAppRoleAssignment `
    -ServicePrincipalId $AppRoleAssignment.PrincipalId `
    -BodyParameter $AppRoleAssignment -Verbose
}

Überprüfen von Berechtigungen für die benutzerseitig zugewiesene verwaltete Identität

Um die Berechtigungen für eine UMI zu überprüfen, wechseln Sie zum Azure-Portal. Gehen Sie in der Ressource Microsoft Entra ID zu Unternehmensanwendungen. Wählen Sie Alle Anwendungen für Anwendungstyp aus, und suchen Sie nach der erstellten UMI.

Screenshot: Einstellungen für Unternehmensanwendungen im Azure-Portal

Wählen Sie die UMI aus und gehen Sie in die Einstellungen für Berechtigungen unter Sicherheit.

Screenshot: Berechtigungen einer benutzerseitig zugewiesenen verwalteten Identität

Abrufen oder Festlegen einer verwalteten Identität für einen logischen Server oder eine verwaltete Instanz

Im Leitfaden Erstellen eines Azure SQL-Datenbank-Servers mit einer benutzerseitig zugewiesenen verwalteten Identität erfahren Sie mehr über das Erstellen eines Servers mithilfe einer UMI.

Abrufen der SMI für logische Azure SQL-Datenbank-Server

Im Azure-Portal wird die ID der systemseitig zugewiesenen verwalteten Identität (SMI) im Menü Eigenschaften des logischen Azure SQL-Datenbank-Servers angezeigt.

Screenshot: Seite im Azure-Portal für einen logischen Azure SQL-Datenbank-Server. Im Menü „Eigenschaften“ ist die Option „Systemseitig zugewiesene verwaltete Identität“ hervorgehoben.

  • Verwenden Sie die folgenden PowerShell- oder Azure CLI-Beispiele, um die UMI(s) für Azure SQL Managed Instance oder Azure SQL-Datenbank abzurufen.
  • Verwenden Sie die folgenden PowerShell- oder Azure CLI-Beispiele, um die SMI für Azure SQL Managed Instance abzurufen.

Festlegen einer verwalteten Identität im Azure-Portal

Gehen Sie wie folgt vor, um die benutzerseitig verwaltete Identität für den logischen Azure SQL-Datenbank-Server oder Azure SQL Managed Instance im Azure-Portal festzulegen:

  1. Wechseln Sie zu Ihrer SQL-Server oder SQL verwalteten Instanz-Ressource.
  2. Wählen Sie unter Sicherheit die Einstellung Identität aus.
  3. Wählen Sie unter Benutzerseitig zugewiesene verwaltete IdentitätHinzufügen aus.
  4. Wählen Sie ein Abonnement und dann unter Primäre Identität eine verwaltete Identität für das Abonnement aus. Wählen Sie dann die Schaltfläche Auswählen aus.

Screenshot: Auswählen einer benutzerseitig zugewiesenen verwalteten Identität beim Konfigurieren einer vorhandenen Serveridentität im Azure-Portal

Erstellen oder Festlegen einer verwalteten Identität mithilfe der Azure CLI

Die Azure CLI 2.26.0 (oder höher) ist erforderlich, um diese Befehle mit einer UMI auszuführen.

Verwaltete Identität für Azure SQL-Datenbank mit der Azure CLI

  • Verwenden Sie den Befehl az sql server create, um einen neuen Server mit einer benutzerseitig zugewiesenen verwalteten Identität bereitzustellen.

  • Mit dem Befehl az sql server show können Sie die verwalteten Identitäten für einen logischen Server abrufen.

    • Suchen Sie beispielsweise nach der jeweiligen principalId, um die benutzerseitig zugewiesenen verwalteten Identitäten eines logischen Servers abzurufen:

      az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.userAssignedIdentities
      
    • So rufen Sie die systemseitig zugewiesene verwaltete Identität eines logischen Azure SQL-Datenbank-Servers ab:

      az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.principalId
      
  • Verwenden Sie den Befehl az sql server update, um die Servereinstellungen der UMI zu aktualisieren.

Verwaltete Identität für Azure SQL Managed Instance mit der Azure CLI

  • Mit dem Befehl az sql mi create können Sie eine neue verwaltete Instanz mit einem UMI bereitstellen.

  • Verwenden Sie den Befehl az sql mi show, um die system- und benutzerseitig zugewiesenen verwalteten Identitäten für verwaltete Instanzen abzurufen.

    • Suchen Sie beispielsweise nach der jeweiligen principalId, um die UMI(s) für eine verwaltete Instanz abzurufen:

      az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.userAssignedIdentities
      
    • Gehen Sie wie folgt vor, um die SMI einer verwalteten Instanz abzurufen:

      az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.principalId
      
  • Verwenden Sie den Befehl az sql mi update, um die Einstellungen für die verwaltete Instanz der UMI zu aktualisieren.

Erstellen oder Festlegen einer verwalteten Identität mithilfe von PowerShell

Für die Verwendung von PowerShell mit einer UMI ist das Az.Sql-Modul 3.4 oder höher erforderlich. Die neueste Version von PowerShell wird empfohlen. Sie können auch Azure Cloud Shell im Azure-Portal verwenden.

Verwaltete Identität für Azure SQL-Datenbank mit PowerShell

  • Verwenden Sie den Befehl New-AzSqlServer, um einen neuen Server mit einer UMI bereitzustellen.

  • Mit dem Befehl Get-AzSqlServer können Sie die verwalteten Identitäten für einen logischen Server abrufen.

    • Suchen Sie beispielsweise nach der jeweiligen principalId, um die UMI(s) eines logischen Servers abzurufen:

      $MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here"
      $MI.Identity.UserAssignedIdentities | ConvertTo-Json 
      
    • Gehen Sie wie folgt vor, um die SMI eines logischen Azure SQL-Datenbank-Servers abzurufen:

      $MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here"
      $MI.Identity.principalId
      
  • Verwenden Sie den Befehl Set-AzSqlServer, um die Servereinstellungen der UMI zu aktualisieren.

Verwaltete Identität für Azure SQL Managed Instance mit PowerShell

  • Verwenden Sie den Befehl New-AzSqlInstance, um eine neue verwaltete Instanz mit einer UMI bereitzustellen.

  • Um die verwalteten Identitäten für eine verwaltete Instanz abzurufen, verwenden Sie den Befehl Get-AzSqlInstance.

    • Suchen Sie beispielsweise nach der jeweiligen principalId, um die UMI(s) einer verwalteten Instanz abzurufen:

      $MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here"
      $MI.Identity.UserAssignedIdentities | ConvertTo-Json 
      
    • Gehen Sie wie folgt vor, um die SMI einer verwalteten Instanz abzurufen:

      $MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here"
      $MI.Identity.principalId
      
  • Verwenden Sie den Befehl Set-AzSqlInstance, um die Einstellungen für die verwaltete Instanz einer UMI zu aktualisieren.

Erstellen oder Festlegen einer verwalteten Identität mithilfe der REST-API

Um die UMI-Einstellungen für den Server zu aktualisieren, können Sie auch das REST-API-Bereitstellungsskript nutzen, das in den Artikeln Erstellen eines Azure SQL-Datenbank-Servers mit einer benutzerseitig zugewiesenen verwalteten Identität und Erstellen einer Azure SQL Managed Instance mit einer benutzerseitig zugewiesenen verwalteten Identität verwendet wird. Führen Sie den Bereitstellungsbefehl in der Führungslinie erneut mit der aktualisierten benutzerseitig zugewiesenen verwalteten Identitätseigenschaft aus, die Sie aktualisieren möchten.

Erstellen oder Festlegen einer verwalteten Identität mithilfe einer ARM-Vorlage

Um die UMI-Einstellungen für den Server zu aktualisieren, können Sie auch die ARM-Vorlage (Azure Resource Manager) nutzen, die in den Artikeln Erstellen eines Azure SQL-Datenbank-Servers mit einer benutzerseitig zugewiesenen verwalteten Identität und Erstellen einer Azure SQL Managed Instance mit einer benutzerseitig zugewiesenen verwalteten Identität verwendet wird. Führen Sie den Bereitstellungsbefehl in der Führungslinie erneut mit der aktualisierten benutzerseitig zugewiesenen verwalteten Identitätseigenschaft aus, die Sie aktualisieren möchten.

Hinweis

Sie können weder die Serveradministrator*innen noch das Kennwort oder die Microsoft Entra-Administrator*innen ändern, indem Sie den Bereitstellungsbefehl für die ARM-Vorlage erneut ausführen.

Einschränkungen und bekannte Probleme

  • Nachdem Sie eine verwaltete Instanz erstellt haben, wird auf der Microsoft Entra-Administratorseite im Azure-Portal eine Warnung angezeigt: Managed Instance needs permissions to access Microsoft Entra ID. Click here to grant "Read" permissions to your Managed Instance. Wenn Sie der UMI die zuvor in diesem Artikel erläuterten geeigneten Berechtigungen erteilt haben, können Sie diese Warnung ignorieren.
  • Wenn Sie eine SMI oder UMI als Server- oder Instanzidentität verwenden, führt das Löschen der Identität dazu, dass der Server bzw. die Instanz nicht auf Microsoft Graph zugreifen kann. Microsoft Entra-Authentifizierung und andere Funktionen werden nicht unterstützt. Um die Microsoft Entra-Funktionalität wiederherzustellen, weisen Sie dem Server eine neue SMI oder UMI mit den entsprechenden Berechtigungen zu.
  • Sie müssen PowerShell verwenden, um die Berechtigungen für den Zugriff auf Microsoft Graph über eine SMI oder UMI zu erteilen. Sie können diese Berechtigungen nicht mithilfe des Azure-Portals erteilen.