Attribuer des rôles d’administrateur personnalisés à l’aide de l’API Microsoft Graph dans Microsoft Entra ID
Vous pouvez automatiser la manière dont vous attribuez des rôles aux comptes d’utilisateur à l’aide de l’API Microsoft Graph. Cet article traite des opérations de PUBLICATION, d’OBTENTION et de SUPPRESSION sur roleAssignments.
Prérequis
- Licence Microsoft Entra ID P1 ou P2
- Administrateur de rôle privilégié
- Consentement administrateur lors de l’utilisation de l’Afficheur Graph pour l’API Microsoft Graph
Pour plus d’informations, consultez Prérequis pour utiliser PowerShell ou de l’Afficheur Graph.
Opérations de PUBLICATION sur RoleAssignment
Utilisez l’API Create unifiedRoleAssignment pour affecter le rôle.
Exemple 1 : Créer une attribution de rôle entre un utilisateur et une définition de rôle
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Content-type: application/json
body
{
"@odata.type": "#microsoft.graph.unifiedRoleAssignment",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "194ae4cb-b126-40b2-bd5b-6091b380977d",
"directoryScopeId": "/" // Don't use "resourceScope" attribute in Azure AD role assignments. It will be deprecated soon.
}
response
HTTP/1.1 201 Created
Exemple 2 : Créer une attribution de rôle où le principal ou la définition de rôle n’existe pas
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
body
{
"@odata.type": "#microsoft.graph.unifiedRoleAssignment",
"principalId": "aaaaaaaa-bbbb-cccc-1111-2222222222229",
"roleDefinitionId": "194ae4cb-b126-40b2-bd5b-6091b380977d",
"directoryScopeId": "/" //Don't use "resourceScope" attribute in Azure AD role assignments. It will be deprecated soon.
}
response
HTTP/1.1 404 Not Found
Exemple 3 : Créer une attribution de rôle sur une seule étendue de ressources
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
body
{
"@odata.type": "#microsoft.graph.unifiedRoleAssignment",
"principalId": "aaaaaaaa-bbbb-cccc-1111-2222222222229",
"roleDefinitionId": "00000000-0000-0000-0000-000000000000", //role template ID of a custom role
"directoryScopeId": "/13ff0c50-18e7-4071-8b52-a6f08e17c8cc" //object ID of an application
}
response
HTTP/1.1 201 Created
Exemple 4 : Créer une attribution de rôle délimitée par unité administrative sur une définition de rôle intégré qui n’est pas prise en charge
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
body
{
"@odata.type": "#microsoft.graph.unifiedRoleAssignment",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "29232cdf-9323-42fd-ade2-1d097af3e4de", //role template ID of Exchange Administrator
"directoryScopeId": "/administrativeUnits/13ff0c50-18e7-4071-8b52-a6f08e17c8cc" //object ID of an administrative unit
}
response
HTTP/1.1 400 Bad Request
{
"odata.error":
{
"code":"Request_BadRequest",
"message":
{
"message":"The given built-in role is not supported to be assigned to a single resource scope."
}
}
}
Seul un sous-ensemble de rôles intégrés est activé pour l’étendue Unité administrative. Reportez-vous à cette documentation pour obtenir la liste des rôles intégrés pris en charge sur une unité administrative.
Opérations d’OBTENTION sur RoleAssignment
Utilisez l’API List unifiedRoleAssignments pour récupérer l’attribution de rôle.
Exemple 5 : Obtenir des attributions de rôle pour un principal donné
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalId+eq+'<object-id-of-principal>'
Response
HTTP/1.1 200 OK
{
"value":[
{
"id": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0uIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/"
} ,
{
"id": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1wIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
"directoryScopeId": "/"
}
]
}
Exemple 6 : Obtenir des attributions de rôle pour une définition de rôle donnée
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=roleDefinitionId+eq+'<object-id-or-template-id-of-role-definition>'
Response
HTTP/1.1 200 OK
{
"value":[
{
"id": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1wIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
"directoryScopeId": "/"
}
]
}
Exemple 7 : Obtenir une attribution de rôle par ID
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
Response
HTTP/1.1 200 OK
{
"id": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0uIiSDKQoTVJrLE9etXyrY0-1",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/"
}
Exemple 8 : Obtenir des attributions de rôle pour une étendue donnée
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=directoryScopeId+eq+'/d23998b1-8853-4c87-b95f-be97d6c6b610'
response
HTTP/1.1 200 OK
{
"value":[
{
"id": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0uIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/d23998b1-8853-4c87-b95f-be97d6c6b610"
} ,
{
"id": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1wIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "00000000-0000-0000-0000-000000000000",
"directoryScopeId": "/d23998b1-8853-4c87-b95f-be97d6c6b610"
}
]
}
Opérations de SUPPRESSION sur RoleAssignment
Utilisez l’API Delete unifiedRoleAssignment pour supprimer l’attribution de rôle.
Exemple 9 : Supprimer une attribution de rôle entre un utilisateur et une définition de rôle
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
response
HTTP/1.1 204 No Content
Exemple 10 : Supprimer une attribution de rôle qui n’existe plus
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
response
HTTP/1.1 404 Not Found
Exemple 11 : Supprimer une attribution de rôle entre une définition de rôle autonome et une définition de rôle Administrateur général
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
response
HTTP/1.1 400 Bad Request
{
"odata.error":
{
"code":"Request_BadRequest",
"message":
{
"lang":"en",
"value":"Removing self from Global Administrator built-in role is not allowed"},
"values":null
}
}
}
Nous empêchons les utilisateurs de supprimer leur propre rôle d’administrateur général afin d’éviter un scénario dans lequel un locataire ne possède aucun Administrateur général. La suppression d’autres rôles attribués autonomes est autorisée.
Étapes suivantes
- N’hésitez pas à nous donner votre avis sur le forum des rôles d’administrateur Microsoft Entra.
- Pour plus d’informations sur les autorisations de rôle, consultez Rôles intégrés Microsoft Entra.
- Pour plus d'informations sur les autorisations utilisateur par défaut, consultez la comparaison des autorisations par défaut d'un utilisateur invité et d'un membre.