Partager via


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

Cet article explique comment affecter des utilisateurs et des groupes à une application d’entreprise dans Microsoft Entra ID. 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.

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

L'attribution basée sur un groupe nécessite Microsoft Entra ID édition P1 ou P2. Les appartenances de groupe imbriquées ne sont actuellement pas prises en charge. Pour plus d'informations sur les conditions d'obtention des licences pour les fonctionnalités présentées dans cet 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. Les applications qui exigent que les utilisateurs soient affectés à l’application doivent disposer de leurs autorisations accordées par un administrateur, même si les stratégies de consentement de l’utilisateur pour votre annuaire autorisent un utilisateur à donner son consentement pour le compte d’eux-mêmes.

Note

Si vous rencontrez des limitations lors de la gestion des groupes via le portail, par exemple avec des groupes de stratégies d’accès aux applications, envisagez d’utiliser d’autres méthodes telles que PowerShell ou l’API Microsoft Graph.

Prerequisites

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 d’applications cloud
    • Administrateur d’application
    • Administrateur d’utilisateurs
    • Propriétaire du principal de service.
  • Microsoft Entra ID P1 ou P2 pour l’affectation basée sur les groupes. Pour plus d'informations sur les conditions d'obtention des licences pour les fonctionnalités présentées dans cet article, consultez la page sur la tarification de Microsoft Entra.

Attribuer 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 à Entra ID>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.

    Attribuez le compte d’utilisateur à une application dans votre locataire Microsoft Entra.

  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 attribuer à l’utilisateur ou au groupe. Si vous n’avez pas encore défini de rôles, le rôle par défaut est Accès par défaut.

  9. Dans le volet Ajouter une attribution, sélectionnez Attribuer pour attribuer 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 dont vous voulez annuler l'attribution à l’application.
  3. Sélectionnez Supprimer pour annuler l'attribution de l'utilisateur ou du groupe à l’application.

Affecter des utilisateurs et des groupes à une application à l’aide de Microsoft Entra PowerShell

  1. Connectez-vous en tant qu’administrateur d’application cloud au moins.

  2. Pour attribuer un utilisateur à une application, utilisez le script suivant :

    connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    # 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-EntraUser -ObjectId "$username"
    $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
    # Assign the user to the app role
    New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

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.

    connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    $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 non d’affichage du principal du service.

    $user = Get-EntraUser -ObjectId "$username"
    $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
    
  3. Exécutez la commande suivante pour rechercher les rôles d’application exposés par le principal de service.

    $appRoles = $sp.AppRoles
    # Display the app roles
    $appRoles | ForEach-Object {
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"
    }
    

    Note

    L’ID d'AppRole par défaut est 00000000-0000-0000-0000-000000000000. Ce rôle est attribué lorsqu’aucun AppRole spécifique n’est défini pour un principal de service.

  4. Affectez le nom d'AppRole à la variable $app_role_name. Dans cet exemple, vous souhaitez affecter à Britta Simon le rôle Analyst (Limited access).

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

    New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Pour attribuer un groupe à une application d’entreprise, vous devez remplacer Get-EntraUser par Get-EntraGroup, et New-EntraUserAppRoleAssignment par New-EntraGroupAppRoleAssignment.

Annuler l’attribution d’utilisateurs et de groupes à partir d’une application à l’aide de Microsoft Entra PowerShell

  1. Ouvrez une invite de commandes avec élévation de privilèges Windows PowerShell.

  2. Connectez-vous en tant qu’administrateur d’application cloud au moins.

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

    connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    # Store the proper parameters
    $user = Get-Entrauser -ObjectId "<objectId>"
    $spo = Get-EntraServicePrincipal -ObjectId "<objectId>"
    
    #Get the ID of role assignment 
    $assignments = Get-EntraServicePrincipalAppRoleAssignedTo -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-EntraServicePrincipalAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments.ObjectId
    

Supprimer tous les utilisateurs affectés à l’application à l’aide de Microsoft Entra PowerShell

  1. Ouvrez une invite de commandes avec élévation de privilèges Windows PowerShell.

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

connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"

# Get Microsoft Entra App role assignments using objectId of the Service Principal
$assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $sp.ObjectId -All

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

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

  1. Ouvrez une invite de commandes avec élévation de privilèges Windows PowerShell.

  2. Exécutez Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" et connectez-vous comme Administrateur d’application cloud au minimum.

  3. Pour attribuer un utilisateur à 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, the service principal and appRole.
    $params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }
    #Assign the user to the AppRole
    New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
        Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
        PrincipalId, PrincipalType, ResourceDisplayName, ResourceId
    

Exemple

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

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

    # Assign the values to the variables  
    $userId = "<Britta Simon's user ID>"  
    $app_name = "Workplace Analytics"  
    
  2. Dans cet exemple, nous ignorons le nom exact du rôle d’application à attribuer à Britta Simon. Exécutez la commande suivante pour obtenir le principal de service ($sp) à l’aide du nom d’affichage du principal de service.

    # Get the service principal for the app  
    $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"  
    
  3. Exécutez la commande suivante pour rechercher les rôles d’application exposés par le principal de service.

    # Get the app roles exposed by the service principal  
    $appRoles = $sp.AppRoles  
    # Display the app roles  
    $appRoles | ForEach-Object {  
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"  
    }  
    

    Note

    L’ID d'AppRole par défaut est 00000000-0000-0000-0000-000000000000. Ce rôle est attribué lorsqu’aucun AppRole spécifique n’est défini pour un principal de service.

  4. Affectez le nom de rôle à la variable $app_role_name. Dans cet exemple, vous souhaitez affecter à Britta Simon le rôle Analyst (Limited access).

    # Assign the values to the variables  
    $app_role_name = "Analyst (Limited access)"  
    $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id  
    
  5. Préparez les paramètres et exécutez la commande suivante pour attribuer l’utilisateur au rôle d’application.

    # Prepare parameters for the role assignment  
    $params = @{  
        "PrincipalId" = $userId  
        "ResourceId" = $sp.Id  
        "AppRoleId" = $appRoleId  
    }  
    
    # Assign the user to the app role  
    New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |   
        Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,   
        PrincipalId, PrincipalType, ResourceDisplayName, ResourceId  
    

Pour attribuer un groupe à une application d’entreprise, vous devez remplacer Get-MgUser par Get-MgGroup, et New-MgUserAppRoleAssignment par New-MgGroupAppRoleAssignment.

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

Annuler l'attribution d'utilisateurs et de groupes à une application à l’aide de Microsoft Graph PowerShell

  1. Ouvrez une invite de commandes avec élévation de privilèges Windows PowerShell.

  2. Exécutez Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" et connectez-vous comme Administrateur d’application cloud au minimum.

  3. Obtenez l’utilisateur et le principal de service.

    $user = Get-MgUser -UserId <userid>
    $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
    
  4. Obtenez l’ID de l’attribution de rôle.

    $assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
  5. Exécutez la commande suivante pour afficher la liste des utilisateurs attribués à l’application.

    $assignments | Select *
    
  6. Exécutez la commande suivante pour supprimer l’attribution d'AppRole.

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

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

Exécutez la commande suivante pour supprimer tous les utilisateurs et groupes attribués à l’application.

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

Attribuer 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 à Graph Explorercomme Administrateur d’application cloud au minimum.

    Vous devez consentir aux autorisations suivantes :

    Application.ReadWrite.All et 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: ID du principal du service de ressource qui définit le rôle d’application.
    • appRoleId: ID de l'appRole (défini sur le principal du service de ressource) à attribuer à un utilisateur ou à un groupe.
  2. Supprimez l’application d’entreprise. Filtrer 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
    • ID d'AppRole que vous attribuez à l’utilisateur. Si l’application n’expose aucun rôle, l’utilisateur se voit attribuer le rôle d’accès par défaut.

    Note

    L’ID d'AppRole par défaut est 00000000-0000-0000-0000-000000000000. Ce rôle est attribué lorsqu’aucun AppRole spécifique n’est défini pour un principal de service.

  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": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
    "appRoleId": "00000000-0000-0000-0000-000000000000"
    }
    

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

Annuler l'attribution d'utilisateurs et de groupes à une application à l’aide de l'API Microsoft Graph

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

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

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

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

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

Microsoft Graph Explorer ne prend pas en charge la suppression par lot directe des attributions de rôles d’application. Vous devez supprimer chaque attribution individuellement. Toutefois, vous pouvez automatiser ce processus à l’aide de Microsoft Graph PowerShell pour parcourir et supprimer chaque attribution.