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
- Amministrazione consenso 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": "ab2e1023-bddc-4038-9ac1-ad4843e7e539",
"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": "2142743c-a5b3-4983-8486-4532ccba12869",
"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": "2142743c-a5b3-4983-8486-4532ccba12869",
"roleDefinitionId": "e9b2b976-1dea-4229-a078-b08abd6c4f84", //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": "ab2e1023-bddc-4038-9ac1-ad4843e7e539",
"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 sottoinsieme di ruoli predefiniti è abilitato per la definizione dell'ambito dell'unità Amministrazione istrativa. 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": "mhxJMipY4UanIzy2yE-r7JIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "ab2e1023-bddc-4038-9ac1-ad4843e7e539",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/"
} ,
{
"id": "CtRxNqwabEKgwaOCHr2CGJIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "ab2e1023-bddc-4038-9ac1-ad4843e7e539",
"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": "CtRxNqwabEKgwaOCHr2CGJIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "ab2e1023-bddc-4038-9ac1-ad4843e7e539",
"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": "mhxJMipY4UanIzy2yE-r7JIiSDKQoTVJrLE9etXyrY0-1",
"principalId": "ab2e1023-bddc-4038-9ac1-ad4843e7e539",
"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": "mhxJMipY4UanIzy2yE-r7JIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "ab2e1023-bddc-4038-9ac1-ad4843e7e539",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/d23998b1-8853-4c87-b95f-be97d6c6b610"
} ,
{
"id": "CtRxNqwabEKgwaOCHr2CGJIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "ab2e1023-bddc-4038-9ac1-ad4843e7e539",
"roleDefinitionId": "3671d40a-1aac-426c-a0c1-a3821ebd8218",
"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 di ruolo self-and Global Amministrazione istrator
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 globale di Amministrazione istrator per evitare uno scenario in cui un tenant ha zero Amministrazione istratori 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