Share via


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