Beheerde identiteiten in Microsoft Entra voor Azure SQL

Van toepassing op: Azure SQL DatabaseAzure SQL Managed Instance

Microsoft Entra ID (voorheen Azure Active Directory) ondersteunt twee typen beheerde identiteiten: door het systeem toegewezen beheerde identiteit (SMI) en door de gebruiker toegewezen beheerde identiteit (UMI). Zie Beheerde identiteitstypen voor meer informatie.

Een SMI wordt automatisch toegewezen aan Azure SQL Managed Instance wanneer deze wordt gemaakt. Wanneer u Microsoft Entra-verificatie gebruikt met Azure SQL Database, moet u een SMI toewijzen wanneer Azure-service-principals worden gebruikt om Microsoft Entra-gebruikers te maken in SQL Database.

Voorheen kon alleen een SMI worden toegewezen aan de azure SQL Managed Instance- of SQL Database-serveridentiteit. Nu kan een UMI worden toegewezen aan SQL Managed Instance of SQL Database als instantie of serveridentiteit.

Naast het gebruik van een UMI en een SMI als instantie- of serveridentiteit, kunt u deze gebruiken voor toegang tot de database met behulp van de optie Authentication=Active Directory Managed IdentitySQL verbindingsreeks. U moet een SQL-gebruiker maken op basis van de beheerde identiteit in de doeldatabase met behulp van de instructie CREATE USER . Zie Microsoft Entra-verificatie gebruiken met SqlClient voor meer informatie.

Zie Een beheerde identiteit ophalen of instellen voor een logische server of een beheerd exemplaar verderop in dit artikel als u de huidige UMI(s) of SMI voor Azure SQL Managed Instance of Azure SQL Database wilt ophalen.

Voordelen van het gebruik van door de gebruiker toegewezen beheerde identiteiten

Er zijn verschillende voordelen van het gebruik van een UMI als serveridentiteit:

  • Gebruikers hebben de flexibiliteit om hun eigen UMI's voor een tenant te maken en te onderhouden. U kunt UMIs gebruiken als serveridentiteiten voor Azure SQL. Een UMI wordt beheerd door de gebruiker, terwijl een SMI uniek is gedefinieerd per server en wordt toegewezen door het systeem.

  • In het verleden hebt u de rol Microsoft Entra ID-adreslijstlezers nodig bij het gebruik van een SMI als server- of instantie-id. Met de introductie van toegang tot Microsoft Entra ID via Microsoft Graph kunnen gebruikers die zich bezighouden met het verlenen van machtigingen op hoog niveau, zoals de rol Adreslijstlezers aan de SMI of UMI, ook machtigingen op lager niveau geven, zodat de server- of exemplaaridentiteit toegang heeft tot Microsoft Graph.

    Zie de rol Directory Readers in Microsoft Entra ID voor Azure SQL voor meer informatie over het verlenen van machtigingen voor directorylezers en de bijbehorende functie.

  • Gebruikers kunnen een specifieke UMI kiezen als server- of exemplaaridentiteit voor alle databases of beheerde exemplaren in de tenant. Of ze kunnen meerdere UMI's hebben toegewezen aan verschillende servers of exemplaren.

    UMIS's kunnen op verschillende servers worden gebruikt om verschillende functies weer te geven. Een UMI kan bijvoorbeeld TDE (Transparent Data Encryption) op één server leveren en een UMI kan Microsoft Entra-verificatie op een andere server verwerken.

  • U hebt een UMI nodig om een logische server te maken in Azure die is geconfigureerd met TDE met door de klant beheerde sleutels (CMK's). Zie Door de klant beheerde transparante gegevensversleuteling met behulp van door de gebruiker toegewezen beheerde identiteit voor meer informatie.

  • UMI's zijn onafhankelijk van logische servers of beheerde exemplaren. Wanneer een logische server of instantie wordt verwijderd, wordt de SMI ook verwijderd. UMIs worden niet verwijderd met de server.

Notitie

U moet de instantie-id (SMI of UMI) inschakelen om ondersteuning voor Microsoft Entra-verificatie in SQL Managed Instance toe te staan. Voor SQL Database is het inschakelen van de serveridentiteit optioneel en alleen vereist als een Microsoft Entra-service-principal (Microsoft Entra-toepassing) toezicht houdt op het maken en beheren van Microsoft Entra-gebruikers, -groepen of -toepassingen op de server. Zie Microsoft Entra-service-principal met Azure SQL voor meer informatie.

Een door de gebruiker toegewezen beheerde identiteit maken

Zie Door de gebruiker toegewezen beheerde identiteiten beheren voor meer informatie over het maken van een UMI.

Machtigingen

Nadat de UMI is gemaakt, zijn er enkele machtigingen nodig om de UMI toe te staan microsoft Graph als serveridentiteit te lezen. Verken de volgende machtigingen of geef de UMI de rol Directory Readers .

Deze machtigingen moeten worden verleend voordat u een logische server of een beheerd exemplaar inricht. Nadat u de machtigingen aan de UMI hebt verleend, worden deze ingeschakeld voor alle servers of exemplaren die zijn gemaakt met de UMI die als serveridentiteit is toegewezen.

Belangrijk

Alleen een globale Beheer istrator of bevoorrechte rol Beheer istrator kan deze machtigingen verlenen.

Machtigingen verlenen

Het volgende PowerShell-voorbeeldscript verleent de benodigde machtigingen voor een beheerde identiteit. In dit voorbeeld worden machtigingen toegewezen aan de door de gebruiker toegewezen beheerde identiteit umiservertest.

Als u het script wilt uitvoeren, moet u zich aanmelden als een gebruiker met de rol Global Beheer istrator of Privileged Role Beheer istrator.

Het script verleent de User.Read.All, GroupMember.Read.Allen Application.Read.ALL machtigingen aan een beheerde identiteit voor toegang tot 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
}

Machtigingen controleren voor door de gebruiker toegewezen beheerde identiteit

Als u machtigingen voor een UMI wilt controleren, gaat u naar Azure Portal. Ga in de Microsoft Entra ID-resource naar Bedrijfstoepassingen. Selecteer Alle toepassingen voor toepassingstype en zoek naar de UMI die is gemaakt.

Screenshot of enterprise application settings in the Azure portal.

Selecteer de UMI en ga naar de instellingen voor machtigingen onder Beveiliging.

Screenshot of user-assigned managed identity permissions.

Een beheerde identiteit ophalen of instellen voor een logische server of een beheerd exemplaar

Als u een server wilt maken met behulp van een UMI, raadpleegt u de volgende handleiding: Een logische Azure SQL-server maken met behulp van een door de gebruiker toegewezen beheerde identiteit.

De logische server van SMI voor Azure SQL Database ophalen

In Azure Portal wordt de door het systeem toegewezen beheerde identiteit -id (SMI) weergegeven in het menu Eigenschappen van de logische Server van Azure SQL Database.

Screenshot of the Azure portal page for an Azure SQL Database logical server. In the Properties menu, the System Assigned Managed Identity is highlighted.

  • Als u de UMI('s) voor Azure SQL Managed Instance of Azure SQL Database wilt ophalen, gebruikt u de volgende PowerShell- of Azure CLI-voorbeelden.
  • Als u de SMI voor Azure SQL Managed Instance wilt ophalen, gebruikt u de volgende PowerShell- of Azure CLI-voorbeelden.

Een beheerde identiteit instellen in Azure Portal

De door de gebruiker beheerde identiteit instellen voor de logische Azure SQL Database-server of Azure SQL Managed Instance in Azure Portal:

  1. Ga naar uw SQL Server - of SQL Managed Instance-resource .
  2. Selecteer onder Beveiliging de instelling Identiteit .
  3. Selecteer Toevoegen onder Door de gebruiker toegewezen beheerde identiteit.
  4. Selecteer een abonnement en selecteer vervolgens voor primaire identiteit een beheerde identiteit voor het abonnement. Kies vervolgens de knop Selecteren .

Azure portal screenshot of selecting a user-assigned managed identity when configuring an existing server identity.

Een beheerde identiteit maken of instellen met behulp van de Azure CLI

De Azure CLI 2.26.0 (of hoger) is vereist om deze opdrachten uit te voeren met een UMI.

Beheerde identiteit van Azure SQL Database met behulp van de Azure CLI

  • Als u een nieuwe server wilt inrichten met een door de gebruiker toegewezen beheerde identiteit, gebruikt u de opdracht az sql server create .

  • Gebruik de opdracht az sql server show om de beheerde identiteiten voor een logische server te verkrijgen.

    • Als u bijvoorbeeld de door de gebruiker toegewezen beheerde identiteiten van een logische server wilt ophalen, zoekt u de principalId volgende items:

      az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.userAssignedIdentities
      
    • De door het systeem toegewezen beheerde identiteit van een logische Azure SQL Database-server ophalen:

      az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.principalId
      
  • Als u de serverinstelling van de UMI wilt bijwerken, gebruikt u de opdracht az sql server update .

Beheerde identiteit van Azure SQL Managed Instance met behulp van de Azure CLI

  • Als u een nieuw beheerd exemplaar wilt inrichten met een UMI, gebruikt u de opdracht az sql mi create .

  • Gebruik de opdracht az sql mi show om de door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten voor beheerde exemplaren te verkrijgen.

    • Als u bijvoorbeeld de UMI('s) voor een beheerd exemplaar wilt ophalen, zoekt u naar de principalId volgende items:

      az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.userAssignedIdentities
      
    • De SMI van een beheerd exemplaar ophalen:

      az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.principalId
      
  • Gebruik de opdracht az sql mi update om de instelling van het beheerde exemplaar van UMI bij te werken.

Een beheerde identiteit maken of instellen met behulp van PowerShell

Az.Sql-module 3.4 of hoger is vereist voor het gebruik van PowerShell met een UMI. De nieuwste versie van PowerShell wordt aanbevolen of gebruik de Azure Cloud Shell in Azure Portal.

Beheerde identiteit van Azure SQL Database met behulp van PowerShell

  • Als u een nieuwe server wilt inrichten met een UMI, gebruikt u de opdracht New-AzSqlServer .

  • Gebruik de opdracht Get-AzSqlServer om de beheerde identiteiten voor een logische server te verkrijgen.

    • Als u bijvoorbeeld de UMI('s) van een logische server wilt ophalen, zoekt u de principalId volgende items:

      $MI = get-azsqlserver -resourcegroupname "resourcegroupnamehere" -name "sql-logical-server-name-here"
      $MI.Identity.UserAssignedIdentities | ConvertTo-Json 
      
    • Ga als volgt te werk om de SMI van een logische Azure SQL Database-server op te halen:

      $MI = get-azsqlserver -resourcegroupname "resourcegroupnamehere" -name "sql-logical-server-name-here"
      $MI.Identity.principalId
      
  • Als u de serverinstelling van de UMI wilt bijwerken, gebruikt u de opdracht Set-AzSqlServer .

Beheerde identiteit van Azure SQL Managed Instance met behulp van PowerShell

  • Als u een nieuw beheerd exemplaar wilt inrichten met een UMI, gebruikt u de opdracht New-AzSqlInstance .

  • Gebruik de opdracht Get-AzSqlInstance om de beheerde identiteiten voor een beheerd exemplaar te verkrijgen.

    • Als u bijvoorbeeld de UMI('s) van een beheerd exemplaar wilt ophalen, zoekt u de principalId volgende items:

      $MI = get-azsqlinstance -resourcegroupname "resourcegroupnamehere" -name "sql-mi-name-here"
      $MI.Identity.UserAssignedIdentities | ConvertTo-Json 
      
    • De SMI van een beheerd exemplaar ophalen:

      $MI = get-azsqlinstance -resourcegroupname "resourcegroupnamehere" -name "sql-mi-name-here"
      $MI.Identity.principalId
      
  • Als u de instelling van het beheerde exemplaar van UMI wilt bijwerken, gebruikt u de opdracht Set-AzSqlInstance .

Een beheerde identiteit maken of instellen met behulp van de REST API

Als u de UMI-instellingen voor de server wilt bijwerken, kunt u ook het REST API-inrichtingsscript gebruiken dat wordt gebruikt in Een logische server maken met behulp van een door de gebruiker toegewezen beheerde identiteit of een beheerd exemplaar maken met behulp van een door de gebruiker toegewezen beheerde identiteit. Voer de inrichtingsopdracht opnieuw uit in de handleiding met de bijgewerkte door de gebruiker toegewezen beheerde identiteiteigenschap die u wilt bijwerken.

Een beheerde identiteit maken of instellen met behulp van een ARM-sjabloon

Als u de UMI-instellingen voor de server wilt bijwerken, kunt u ook de Azure Resource Manager-sjabloon (ARM-sjabloon) gebruiken die wordt gebruikt in Een logische server maken met behulp van een door de gebruiker toegewezen beheerde identiteit of een beheerd exemplaar maken met behulp van een door de gebruiker toegewezen beheerde identiteit. Voer de inrichtingsopdracht opnieuw uit in de handleiding met de bijgewerkte door de gebruiker toegewezen beheerde identiteiteigenschap die u wilt bijwerken.

Notitie

U kunt de serverbeheerder of het wachtwoord niet wijzigen of de Microsoft Entra-beheerder wijzigen door de inrichtingsopdracht voor de ARM-sjabloon opnieuw uit te voeren.

Beperkingen en bekende problemen

  • Nadat u een beheerd exemplaar hebt gemaakt, wordt op de Microsoft Entra-beheerpagina voor uw beheerde exemplaar in Azure Portal een waarschuwing weergegeven: Managed Instance needs permissions to access Microsoft Entra ID. Click here to grant "Read" permissions to your Managed Instance. Als u de UMI de juiste machtigingen hebt gegeven die eerder in dit artikel zijn besproken, kunt u deze waarschuwing negeren.
  • Als u een SMI of een UMI als server- of exemplaar-id gebruikt, zorgt het verwijderen van de identiteit ervoor dat de server of het exemplaar geen toegang heeft tot Microsoft Graph. Microsoft Entra-verificatie en andere functies mislukken. Als u microsoft Entra-functionaliteit wilt herstellen, wijst u een nieuwe SMI of UMI toe aan de server met de juiste machtigingen.
  • Als u machtigingen wilt verlenen voor toegang tot Microsoft Graph via een SMI of een UMI, moet u PowerShell gebruiken. U kunt deze machtigingen niet verlenen met behulp van Azure Portal.