Delen via


Beheerde identiteit en Microsoft Entra verificatie instellen voor SQL Server ingeschakeld door Azure Arc

Van toepassing op: SQL Server 2025 (17.x)

Dit artikel bevat stapsgewijze instructies voor het instellen en configureren van Microsoft Entra ID beheerde identiteit voor SQL Server ingeschakeld door Azure Arc.

Zie Managed-identiteit voor SQL Server ingeschakeld door Azure Arc voor een overzicht van beheerde identiteiten met SQL Server.

Vereiste voorwaarden

Voordat u een beheerde identiteit kunt gebruiken met SQL Server ingeschakeld door Azure Arc, moet u ervoor zorgen dat u aan de volgende vereisten voldoet:

De primaire beheerde identiteit inschakelen

Als u de Azure-extensie voor SQL Server op uw server hebt geïnstalleerd, kunt u de primaire beheerde identiteit voor uw SQL Server exemplaar rechtstreeks vanuit de Azure-portal inschakelen. Het is ook mogelijk om de primaire beheerde identiteit handmatig in te schakelen door het register bij te werken, maar moet uiterst voorzichtig zijn.

Voer de volgende stappen uit om de primaire beheerde identiteit in te schakelen in de Azure-portal:

  1. Ga naar uw SQL Server ingeschakeld door Azure Arc resource in de Azure-portal.

  2. Selecteer onder SettingsMicrosoft Entra ID en Purview om de pagina Microsoft Entra ID en Purview te openen.

    Opmerking

    Als u de optie Enable Microsoft Entra ID authentication niet ziet, controleert u of uw SQL Server-exemplaar is verbonden met Azure Arc en of de meest recente SQL-extensie is geïnstalleerd.

  3. Schakel op de pagina Microsoft Entra ID en Purview het selectievakje naast Gebruik een primaire beheerde identiteit in en gebruik vervolgens Opslaan om uw configuratie toe te passen:

    Schermopname van de optie Microsoft Entra in de Azure portal.

Toepassingsmachtigingen verlenen aan de identiteit

Belangrijk

Alleen een beheerder van bevoorrechte rollen of een hogere rol kan deze machtigingen verlenen.

Als u Microsoft Entra verificatie wilt inschakelen voor SQL Server exemplaren, vereist elke door het systeem toegewezen beheerde identiteit User.Read.All, GroupMember.Read.All en Application.Read.All machtigingen om een query uit te voeren op Microsoft Graph. Zie voor meer informatie over deze machtigingen:

Deze machtigingen zijn machtigingen op toepassingsniveau (app-rollen) en moeten rechtstreeks aan elke beheerde identiteit worden toegewezen. Ze kunnen niet handmatig worden toegewezen aan een Microsoft Entra beveiligingsgroep en worden verleend aan leden via groepslidmaatschap. Voor omgevingen met veel computers is het een alternatief om de rol Directory Readers toe te wijzen aan een rolbare Microsoft Entra beveiligingsgroep en de beheerde identiteiten toe te voegen als leden. In tegenstelling tot app-rolmachtigingen kan deze Microsoft Entra rol worden verleend op groepsniveau, waardoor beheer op schaal wordt vereenvoudigd. Directory Readers verleent echter brede leestoegang voor alle mapobjecten, wat de drie doelmachtigingen voor Graph API aanzienlijk overschrijdt. De rol Directory Readers wordt niet aanbevolen voor productieomgevingen waarvoor toegang met minimale bevoegdheden is vereist.

Het volgende PowerShell-script verleent de vereiste machtigingen voor de beheerde identiteit. Zorg ervoor dat dit script wordt uitgevoerd op PowerShell 7.5 of hoger en dat de Microsoft.Graph module 2.28 of hoger is geïnstalleerd.

# Set your Azure tenant and managed identity name
$tenantID = '<Enter-Your-Azure-Tenant-Id>'
$managedIdentityName = '<Enter-Your-Arc-HostMachine-Name>'

# Connect to Microsoft Graph
try {
    Connect-MgGraph -TenantId $tenantID -ErrorAction Stop
    Write-Output "Connected to Microsoft Graph successfully."
}
catch {
    Write-Error "Failed to connect to Microsoft Graph: $_"
    return
}

# Get Microsoft Graph service principal
$graphAppId = '00000003-0000-0000-c000-000000000000'
$graphSP = Get-MgServicePrincipal -Filter "appId eq '$graphAppId'"
if (-not $graphSP) {
    Write-Error "Microsoft Graph service principal not found."
    return
}

# Get the managed identity service principal
$managedIdentity = Get-MgServicePrincipal -Filter "displayName eq '$managedIdentityName'"
if (-not $managedIdentity) {
    Write-Error "Managed identity '$managedIdentityName' not found."
    return
}

# Define roles to assign
$requiredRoles = @(
    "User.Read.All",
    "GroupMember.Read.All",
    "Application.Read.All"
)

# Assign roles using scoped syntax
foreach ($roleValue in $requiredRoles) {
    $appRole = $graphSP.AppRoles | Where-Object {
        $_.Value -eq $roleValue -and $_.AllowedMemberTypes -contains "Application"
    }

    if ($appRole) {
        try {
            New-MgServicePrincipalAppRoleAssignment   -ServicePrincipalId $managedIdentity.Id `
                -PrincipalId $managedIdentity.Id `
                -ResourceId $graphSP.Id `
                -AppRoleId $appRole.Id `
                -ErrorAction Stop

            Write-Output "Successfully assigned role '$roleValue' to '$managedIdentityName'."
        }
        catch {
            Write-Warning "Failed to assign role '$roleValue': $_"
        }
    }
    else {
        Write-Warning "Role '$roleValue' not found in Microsoft Graph AppRoles."
    }
}

Aanmeldingen en gebruikers maken

Volg de stappen in de zelfstudie Microsoft Entra om aanmeldingen en gebruikers voor de beheerde identiteit te maken.