Partager via


Configurer l’identité managée et l’authentification Microsoft Entra pour SQL Server activée par Azure Arc

S’applique à : SQL Server 2025 (17.x)

Cet article fournit des instructions étape par étape pour l'installation et la configuration de l'identité managée Microsoft Entra ID pour SQL Server, activée par Azure Arc.

Pour obtenir une vue d’ensemble de l’identité managée avec SQL Server, consultez l’identité managée pour SQL Server activée par Azure Arc.

Prerequisites

Avant de pouvoir utiliser une identité managée avec SQL Server activé par Azure Arc, veillez à respecter les conditions préalables suivantes :

Activer l’identité managée principale

Si vous avez installé l’extension Azure pour SQL Server sur votre serveur, vous pouvez activer l’identité managée principale pour votre instance SQL Server directement à partir du portail Azure. Il est également possible d’activer manuellement l’identité managée principale en mettant à jour le Registre, mais doit être effectuée avec une prudence extrême.

Pour activer l’identité managée principale dans le portail Azure, procédez comme suit :

  1. Accédez à votre serveur SQL Server activé par la ressource Azure Arc dans le portail Azure.

  2. Sous Paramètres, sélectionnez Microsoft Entra ID et Purview pour ouvrir l’ID Microsoft Entra et la page Purview .

    Note

    Si vous ne voyez pas l’option Activer l’authentification Microsoft Entra ID , vérifiez que votre instance SQL Server est connectée à Azure Arc et que vous disposez de la dernière extension SQL installée.

  3. Dans la page Microsoft Entra ID et Purview , cochez la case en regard d’Utiliser une identité managée principale , puis utilisez Enregistrer pour appliquer votre configuration :

    Capture d’écran de l’option Microsoft Entra dans le portail Azure.

Accorder à l'application des autorisations d'accès à l'identité

Important

Seul un administrateur de rôle privilégié ou un rôle supérieur peut accorder ces autorisations.

L’identité managée affectée par le système, qui utilise le nom de l’ordinateur avec Arc, doit disposer des autorisations d’application Microsoft Graph suivantes (rôles d’application) :

  • User.Read.All : permet d’accéder aux informations utilisateur Microsoft Entra.

  • GroupMember.Read.All : permet d’accéder aux informations de groupe Microsoft Entra.

  • Application.Read.ALL : permet d’accéder aux informations sur le principal de service Microsoft Entra (application).

Vous pouvez utiliser PowerShell pour accorder des autorisations requises à l’identité managée. Vous pouvez également créer un groupe assignable à un rôle. Une fois le groupe créé, affectez le rôle Lecteurs d’annuaire ou les autorisations User.Read.All, GroupMember.Read.All, et Application.Read.All au groupe, puis ajoutez toutes les identités managées affectées par le système pour vos machines Azure Arc au groupe. Nous vous déconseillons d’utiliser le rôle Lecteurs d’annuaire dans votre environnement de production.

Le script PowerShell suivant accorde les autorisations requises à l’identité managée. Vérifiez que ce script est exécuté sur PowerShell 7.5 ou une version ultérieure et que le Microsoft.Graph module 2.28 ou version ultérieure est installé.

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

Créer des connexions et des utilisateurs

Suivez les étapes du didacticiel Microsoft Entra pour créer des connexions et des utilisateurs pour l’identité managée.