Share via


Aangepaste beheerdersrollen toewijzen met behulp van de Microsoft Graph API in Microsoft Entra ID

U kunt automatiseren hoe u rollen toewijst aan gebruikersaccounts met behulp van de Microsoft Graph API. In dit artikel worden POST-, GET- en DELETE-bewerkingen voor roleAssignments beschreven.

Vereisten

  • Licentie voor Microsoft Entra ID P1 of P2
  • Beheerder voor bevoorrechte rollen
  • Beheerderstoestemming bij het gebruik van Graph Explorer voor Microsoft Graph API

Raadpleeg Vereisten voor het gebruik van PowerShell of Graph Explorer voor meer informatie.

POST-bewerkingen op RoleAssignment

Gebruik de API Create unifiedRoleAssignment om de rol toe te wijzen.

Voorbeeld 1: Een roltoewijzing maken tussen een gebruiker en een roldefinitie

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Content-type: application/json

Hoofdtekst

{
    "@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.
}

Respons

HTTP/1.1 201 Created

Voorbeeld 2: Een roltoewijzing maken waarbij de principal of roldefinitie niet bestaat

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments

Hoofdtekst

{
    "@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.
}

Respons

HTTP/1.1 404 Not Found

Voorbeeld 3: Een roltoewijzing maken voor één resourcebereik

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments

Hoofdtekst

{
    "@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
}

Respons

HTTP/1.1 201 Created

Voorbeeld 4: Een toegewezen roltoewijzing voor een beheereenheid maken op basis van een ingebouwde roldefinitie die niet wordt ondersteund

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments

Hoofdtekst

{
    "@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
}

Respons

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."
        }
    }
}

Er is slechts een subset van ingebouwde rollen ingeschakeld voor het bereik van beheereenheden. Raadpleeg deze documentatie voor de lijst met ingebouwde rollen die worden ondersteund voor een beheereenheid.

GET-bewerkingen voor RoleAssignment

Gebruik de API List unifiedRoleAssignments om de roltoewijzing op te halen.

Voorbeeld 5: Roltoewijzingen ophalen voor een bepaalde principal

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalId+eq+'<object-id-of-principal>'

Respons

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": "/"
            }
        ]
}

Voorbeeld 6: Roltoewijzingen ophalen voor een bepaalde roldefinitie

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=roleDefinitionId+eq+'<object-id-or-template-id-of-role-definition>'

Respons

HTTP/1.1 200 OK
{
"value":[
            {
                "id": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1wIiSDKQoTVJrLE9etXyrY0-1"
                "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
                "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
                "directoryScopeId": "/"
            }
     ]
}

Voorbeeld 7: Een roltoewijzing ophalen op id

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1

Respons

HTTP/1.1 200 OK
{ 
    "id": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0uIiSDKQoTVJrLE9etXyrY0-1",
    "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
    "directoryScopeId": "/"
}

Voorbeeld 8: Roltoewijzingen ophalen voor een bepaald bereik

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=directoryScopeId+eq+'/d23998b1-8853-4c87-b95f-be97d6c6b610'

Respons

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"
            }
        ]
}

DELETE-bewerkingen voor RoleAssignment

Gebruik de Delete unifiedRoleAssignment-API om de roltoewijzing te verwijderen.

Voorbeeld 9: Een roltoewijzing tussen een gebruiker en een roldefinitie verwijderen.

DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1

Respons

HTTP/1.1 204 No Content

Voorbeeld 10: Een roltoewijzing verwijderen die niet meer bestaat

DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1

Respons

HTTP/1.1 404 Not Found

Voorbeeld 11: Een roltoewijzing verwijderen tussen de roldefinitie zelf en globale beheerder

DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1

Respons

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
        }
    }
}

We voorkomen dat gebruikers hun eigen rol globale beheerder verwijderen om een scenario te voorkomen waarin een tenant geen globale beheerders heeft. Het verwijderen van andere rollen die aan zichzelf zijn toegewezen, is toegestaan.

Volgende stappen