Gérer l’attribution d’utilisateurs et de groupes à une application

Cet article vous montre comment attribuer des utilisateurs et des groupes à une application d’entreprise dans Microsoft Entra ID à l’aide de PowerShell. Lorsque vous attribuez un utilisateur à une application, celle-ci apparaît dans le portail Mes applications de l’utilisateur pour en faciliter l’accès. Si l’application expose des rôles d’application, vous pouvez également en attribuer un spécifique à l’utilisateur.

Quand vous affectez un groupe à une application, seuls ses utilisateurs y ont accès. L’affectation n’est pas en cascade vers les groupes imbriqués.

L’affectation basée sur un groupe nécessite Microsoft Entra ID édition P1 ou P2. L’affectation basée sur le groupe est prise en charge pour les groupes de sécurité et les groupes Microsoft 365 dont le paramètre SecurityEnabled est défini sur True uniquement. Les appartenances de groupe imbriquées ne sont actuellement pas prises en charge. Pour d’autres conditions de gestion des licences relatives aux composants traités dans le présent article, consultez la page sur la tarification de Microsoft Entra.

Pour un meilleur contrôle, vous pouvez configurer certains types d’applications d’entreprise pour exiger l’affectation d’utilisateur. Pour plus d’informations sur l’attribution d’utilisateurs pour une application, consultez Gérer l’accès à une application.

Prérequis

Pour affecter des utilisateurs et des groupes à une application d’entreprise, vous avez besoin de :

  • Un compte Microsoft Entra avec un abonnement actif. Si vous n’en avez pas encore, vous pouvez créer un compte gratuitement.
  • Un des rôles suivants : Administrateur général, Administrateur d’application cloud, Administrateur d’application ou propriétaire du principal de service.
  • Microsoft Entra ID P1 ou P2 pour l’affectation basée sur les groupes. Pour d’autres conditions de gestion des licences relatives aux composants traités dans le présent article, consultez la page sur la tarification de Microsoft Entra.

Conseil

Les étapes décrites dans cet article peuvent varier légèrement en fonction du portail de départ.

Affecter des utilisateurs et des groupes à une application à l’aide du centre d’administration Microsoft Entra

Pour affecter un compte d’utilisateur ou de groupe à une application d’entreprise :

  1. Connectez-vous au Centre d’administration de Microsoft Entra au minimum en tant qu’Administrateur d’application cloud.

  2. Accédez à Identité>Applications>Applications d’entreprise>Toutes les applications.

  3. Entrez le nom de l’application dans la zone de recherche, puis sélectionnez l’application dans les résultats.

  4. Sélectionnez Utilisateurs et groupes, puis Ajouter un utilisateur/groupe.

    Assign user account to an application in your Microsoft Entra tenant.

  5. Dans le volet Ajouter une attribution, sélectionnez Aucun sélectionné sous Utilisateurs et groupes.

  6. Recherchez et sélectionnez l’utilisateur ou groupe que vous voulez attribuer à l’application. Par exemple, contosouser1@contoso.com ou contosoteam1@contoso.com.

  7. Sélectionnez Sélectionner.

  8. Sous Sélectionner un rôle, sélectionnez le rôle que vous souhaitez affecter à l’utilisateur ou au groupe. Si vous n’avez pas encore défini de rôles, le rôle par défaut représente l’Accès par défaut.

  9. Dans le volet Ajouter une affectation, sélectionnez Affecter pour affecter l’utilisateur ou le groupe à l’application.

Annuler l’assignation des utilisateurs et des groupes d’une application

  1. Suivez les étapes de la section Attribuer des utilisateurs et des groupes à une application pour accéder au volet Utilisateurs et groupes.
  2. Recherchez et sélectionnez l’utilisateur ou le groupe que vous ne voulez plus attribuer à l’application.
  3. Sélectionnez Supprimer pour désattribuer l’utilisateur ou le groupe de l’application.

Atffectez des utilisateurs et des groupes à une application à l’aide d’Azure AD PowerShell

  1. Ouvrez une invite de commandes Windows PowerShell avec des privilèges élevés.

  2. Exécutez Connect-AzureAD et connectez-vous comme Administrateur d’application cloud au minimum.

  3. Pour affecter un utilisateur et un rôle à une application, utilisez le script suivant :

    # Assign the values to the variables
    $username = "<Your user's UPN>"
    $app_name = "<Your App's display name>"
    $app_role_name = "<App role display name>"
    
    # Get the user to assign, and the service principal for the app to assign to
    $user = Get-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Pour affecter un groupe à une application d’entreprise, vous devez remplacer Get-AzureADUser par Get-AzureADGroup, et New-AzureADUserAppRoleAssignment par New-AzureADGroupAppRoleAssignment.

Pour plus d’informations sur la façon d’affecter un groupe à un rôle d’application, consultez la documentation de New-AzureADGroupAppRoleAssignment.

Exemple

Cet exemple affecte l’utilisateur Britta Simon à l’application Microsoft Workplace Analytics à l’aide de PowerShell.

  1. Dans PowerShell, affectez les valeurs correspondantes aux variables $username, $app_name et $app_role_name.

    # Assign the values to the variables
    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. Dans cet exemple, nous ignorons le nom exact du rôle d’application à attribuer à Britta Simon. Exécutez les commandes suivantes pour obtenir l’utilisateur ($user) et le principal du service ($sp) à l’aide de l’UPN de l’utilisateur et du nom complet du principal du service.

    # Get the user to assign, and the service principal for the app to assign to
    $user = Get-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    
  3. Exécutez la commande $sp.AppRoles afin d’afficher les rôles disponibles pour l’application Workplace Analytics. Dans cet exemple, vous souhaitez affecter à Britta Simon le rôle Analyst (Limited access). Shows the roles available to a user using Workplace Analytics Role

  4. Affectez le nom de rôle à la variable $app_role_name.

    # Assign the values to the variables
    $app_role_name = "Analyst (Limited access)"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
  5. Exécutez la commande suivante pour affecter l’utilisateur au rôle d’application :

    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Désaffectez des utilisateurs et des groupes d’une application à l’aide de PowerShell Azure AD

  1. Ouvrez une invite de commandes Windows PowerShell avec des privilèges élevés.

  2. Exécutez Connect-AzureAD et connectez-vous comme Administrateur d’application cloud au minimum.

  3. Pour supprimer un utilisateur et un rôle d’une application, utilisez le script suivant.

    # Store the proper parameters
    $user = get-azureaduser -ObjectId <objectId>
    $spo = Get-AzureADServicePrincipal -ObjectId <objectId>
    
    #Get the ID of role assignment 
    $assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
    #if you run the following, it will show you what is assigned what
    $assignments | Select *
    
    #To remove the App role assignment run the following command.
    Remove-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments[assignment number].ObjectId
    

Supprimez tous les utilisateurs affectés à l’application à l’aide de PowerShell azure AD

Utilisez le script suivant pour supprimer tous les utilisateurs et groupes affectés à l’application.

#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
$sp.ObjectId

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

# Get Azure AD App role assignments using objectId of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true

# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
    if ($_.PrincipalType -eq "User") {
        Remove-AzureADUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    } elseif ($_.PrincipalType -eq "Group") {
        Remove-AzureADGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    }
}

Affectez des utilisateurs et des groupes à une application à l’aide de Microsoft Graph PowerShell

  1. Ouvrez une invite de commandes Windows PowerShell avec des privilèges élevés.
  2. Exécutez Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" et connectez-vous comme Administrateur d’application cloud au minimum.
  3. Pour affecter un utilisateur et un rôle à une application, utilisez le script suivant :

# Assign the values to the variables

$userId = "<Your user's ID>"
$app_name = "<Your App's display name>"
$app_role_name = "<App role display name>"
$sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"

# Get the user to assign, and the service principal for the app to assign to

$params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }

# Assign the user to the app role

New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
    Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
    PrincipalId, PrincipalType, ResourceDisplayName, ResourceId

Désaffectez des utilisateurs et des groupes d’une application à l’aide de Microsoft Graph PowerShell

  1. Ouvrez une invite de commandes Windows PowerShell avec des privilèges élevés.
  2. Exécutez Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" et connectez-vous comme Administrateur d’application cloud au minimum. Pour supprimer un utilisateur et un rôle d’une application, utilisez le script suivant.

# Get the user and the service principal

$user = Get-MgUser -UserId <userid>
$spo = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>

# Get the Id of the role assignment

$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $spo.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}

# if you run the following, it will show you the list of users assigned to the application

$assignments | Select *

# To remove the App role assignment run the following command.

Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId  '<AppRoleAssignment-id>' -ServicePrincipalId $spo.Id

Supprimez tous les utilisateurs et groupes affectés à l'application à l’aide de Microsoft Graph PowerShell

Utilisez le script suivant pour supprimer tous les utilisateurs et groupes affectés à l’application.

$assignments | ForEach-Object {
    if ($_.PrincipalType -in ("user", "Group")) {
        Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -AppRoleAssignmentId $_.Id  }
}

Affectez des utilisateurs et des groupes à une application à l’aide de l’API Microsoft Graph

  1. Pour attribuer des utilisateurs et des groupes à une application, connectez-vous à l’Afficheur Graph comme Administrateur d’application cloud au minimum.

    Vous devez consentir aux autorisations suivantes :

    Application.ReadWrite.All, Directory.ReadWrite.All, AppRoleAssignment.ReadWrite.All.

    Pour accorder une attribution de rôle d’application, vous avez besoin de trois identificateurs :

    • principalId: ID de l’utilisateur ou du groupe auquel vous attribuez le rôle d’application.
    • resourceId : l’ID de la ressource servicePrincipal qui définit le rôle de l’application.
    • appRoleId: ID du rôle d’application (défini sur le principal du service de ressource) à affecter à un utilisateur ou à un groupe.
  2. Supprimez l’application d’entreprise. Filtrez par DisplayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    

    Enregistrez les valeurs suivantes à partir du corps de la réponse :

    • ID d’objet de l’application d’entreprise
    • appRoleId que vous allez affecter à l’utilisateur. Si l’application n’expose aucun rôle, l’utilisateur se voit affecter le rôle d’accès par défaut.
  3. Obtenez l’utilisateur en filtrant par nom principal de l’utilisateur. Enregistrez l’ID d’objet de l’utilisateur.

    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Affectez l’utilisateur à l’application.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo
    
    {
    "principalId": "33ad69f9-da99-4bed-acd0-3f24235cb296",
    "resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
    "appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"
    }
    

    Dans l’exemple, resource-servicePrincipal-id et resourceId représentent l’application d’entreprise.

Annuler l’affectattion des utilisateurs et des groupes d’une application à l’aide de l’API Microsoft Graph

Pour annuler l’affectation d’utilisateurs et de groupes de l’application, exécutez la requête suivante.

  1. Supprimez l’application d’entreprise. Filtrez par displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Obtenez la liste des appRoleAssignments pour l’application.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Supprimez appRoleAssignments en spécifiant l’ID appRoleAssignment.

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Étapes suivantes