Condividi tramite


Configurare l'identità gestita e l'autenticazione di Microsoft Entra per SQL Server abilitata da Azure Arc

Si applica a: SQL Server 2025 (17.x)

Questo articolo fornisce istruzioni dettagliate per configurare e configurare l'identità gestita di MICROSOFT Entra ID per SQL Server abilitata da Azure Arc.

Per una panoramica dell'identità gestita con SQL Server, vedere Identità gestita per SQL Server abilitata da Azure Arc.

Prerequisiti

Prima di poter usare un'identità gestita con SQL Server abilitato da Azure Arc, assicurarsi di soddisfare i prerequisiti seguenti:

Abilitare l'identità gestita primaria

Se è stata installata l'estensione di Azure per SQL Server nel server, è possibile abilitare l'identità gestita primaria per l'istanza di SQL Server direttamente dal portale di Azure. È anche possibile abilitare manualmente l'identità gestita primaria aggiornando il Registro di sistema, ma deve essere eseguita con estrema cautela.

Per abilitare l'identità gestita primaria nel portale di Azure, seguire questa procedura:

  1. Vai alla risorsa SQL Server abilitata da Azure Arc nel portale di Azure.

  2. In Impostazioni selezionare Microsoft Entra ID e Purview per aprire la pagina Microsoft Entra ID e Purview .

    Annotazioni

    Se non viene visualizzata l'opzione Abilita autenticazione MICROSOFT Entra ID, assicurarsi che l'istanza di SQL Server sia connessa ad Azure Arc e che sia installata l'estensione SQL più recente.

  3. Nella pagina Microsoft Entra ID e Purview selezionare la casella accanto a Usa un'identità gestita primaria e quindi usare Salva per applicare la configurazione:

    Screenshot dell'opzione Microsoft Entra nel portale di Azure.

Concedere all'identità le autorizzazioni per l'uso dell'applicazione

Importante

Solo un Amministratore di Ruolo con Privilegi o un ruolo più alto può concedere queste autorizzazioni.

L'identità gestita assegnata dal sistema, che usa il nome del computer abilitato per Arc, deve disporre delle autorizzazioni dell'applicazione Microsoft Graph seguenti (ruoli dell'app):

  • User.Read.All: consente l'accesso alle informazioni utente di Microsoft Entra.

  • GroupMember.Read.All: consente l'accesso alle informazioni del gruppo di Microsoft Entra.

  • Application.Read.ALL: consente l'accesso alle informazioni dell'entità servizio (applicazione) di Microsoft Entra.

È possibile usare PowerShell per concedere le autorizzazioni necessarie all'identità gestita. In alternativa, è possibile creare un gruppo assegnabile a ruoli. Dopo aver creato il gruppo, assegnare il ruolo Directory Readers o le autorizzazioni User.Read.All, GroupMember.Read.All e Application.Read.All al gruppo e aggiungere tutte le identità gestite assegnate dal sistema per le macchine abilitate per Azure Arc al gruppo. È sconsigliato usare il ruolo Lettori directory nell'ambiente di produzione.

Lo script di PowerShell seguente concede le autorizzazioni necessarie all'identità gestita. Assicurarsi che questo script venga eseguito in PowerShell 7.5 o versione successiva e che il Microsoft.Graph modulo 2.28 o versione successiva sia installato.

# 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."
    }
}

Creare credenziali di accesso e utenti

Seguire la procedura descritta nell'esercitazione su Microsoft Entra per creare account di accesso e utenti per l'identità gestita.