Assegnare ruoli di amministratore personalizzati usando l'API Microsoft Graph in Microsoft Entra ID
È possibile automatizzare il modo in cui assegnare ruoli agli account utente tramite l'API Microsoft Graph. Questo articolo illustra le operazioni POST, GET e DELETE su roleAssignments.
Prerequisiti
- Licenza Microsoft Entra ID P1 o P2
- Amministratore ruolo con privilegi
- Consenso amministratore quando si usa Graph Explorer per l'API Microsoft Graph
Per altre informazioni, vedere Prerequisiti per l'uso di PowerShell o Graph Explorer.
Operazioni POST su RoleAssignment
Usare l'API Create unifiedRoleAssignment per assegnare il ruolo.
Esempio 1: Creare un'assegnazione di ruolo tra un utente e una definizione di ruolo
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Content-type: application/json
Corpo
{
"@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.
}
Risposta
HTTP/1.1 201 Created
Esempio 2: Creare un'assegnazione di ruolo in cui la definizione di entità o ruolo non esiste
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Corpo
{
"@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.
}
Risposta
HTTP/1.1 404 Not Found
Esempio 3: Creare un'assegnazione di ruolo in un singolo ambito di risorsa
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Corpo
{
"@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
}
Risposta
HTTP/1.1 201 Created
Esempio 4: Creare un'assegnazione di ruolo con ambito unità amministrativa in una definizione di ruolo predefinita che non è supportata
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Corpo
{
"@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
}
Risposta
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."
}
}
}
Solo un subset di ruoli predefiniti è abilitato per l'ambito unità amministrativa. Fare riferimento a questa documentazione per l'elenco dei ruoli predefiniti supportati in un'unità amministrativa.
Operazioni get su RoleAssignment
Usare l'API List unifiedRoleAssignments per ottenere l'assegnazione di ruolo.
Esempio 5: Ottenere le assegnazioni di ruolo per un'entità specifica
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": "/"
}
]
}
Esempio 6: Ottenere le assegnazioni di ruolo per una determinata definizione di ruolo
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": "/"
}
]
}
Esempio 7: Ottenere un'assegnazione di ruolo in base all'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": "/"
}
Esempio 8: Ottenere assegnazioni di ruolo per un determinato ambito
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"
}
]
}
Operazioni DELETE su RoleAssignment
Usare l'API Delete unifiedRoleAssignment per eliminare l'assegnazione di ruolo.
Esempio 9: Eliminare un'assegnazione di ruolo tra un utente e una definizione di ruolo.
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
Response
HTTP/1.1 204 No Content
Esempio 10: Eliminare un'assegnazione di ruolo che non esiste più
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
Response
HTTP/1.1 404 Not Found
Esempio 11: Eliminare un'assegnazione di ruolo tra la definizione del ruolo di amministratore globale e self-administrator
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
}
}
}
Si impedisce agli utenti di eliminare il proprio ruolo di amministratore globale per evitare uno scenario in cui un tenant ha zero amministratori globali. La rimozione di altri ruoli assegnati all'auto è consentita.
Passaggi successivi
- È possibile condividere con Microsoft nel forum dei ruoli amministrativi di Microsoft Entra
- Per altre informazioni sulle autorizzazioni dei ruoli, vedere Ruoli predefiniti di Microsoft Entra
- Per le autorizzazioni utente predefinite, vedere un confronto tra le autorizzazioni utente guest e membro predefinite