Udostępnij za pośrednictwem


Przypisywanie niestandardowych ról administratora przy użyciu interfejsu API programu Microsoft Graph w identyfikatorze Entra firmy Microsoft

Możesz zautomatyzować przypisywanie ról do kont użytkowników przy użyciu interfejsu API programu Microsoft Graph. W tym artykule omawiane są operacje POST, GET i DELETE dotyczące elementu roleAssignments.

Wymagania wstępne

  • Licencja Microsoft Entra ID P1 lub P2
  • Administrator ról uprzywilejowanych
  • Zgoda administratora podczas korzystania z Eksploratora programu Graph dla interfejsu API programu Microsoft Graph

Aby uzyskać więcej informacji, zobacz Wymagania wstępne dotyczące używania programu PowerShell lub Eksploratora programu Graph.

Operacje POST dotyczące przypisania ról

Aby przypisać rolę, użyj interfejsu API Create unifiedRoleAssignment .

Przykład 1. Tworzenie przypisania roli między użytkownikiem a definicją roli

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

Treść

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

Odpowiedź

HTTP/1.1 201 Created

Przykład 2. Tworzenie przypisania roli, w którym nie istnieje główna lub definicja roli

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

Treść

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

Odpowiedź

HTTP/1.1 404 Not Found

Przykład 3. Tworzenie przypisania roli w pojedynczym zakresie zasobów

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

Treść

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

Odpowiedź

HTTP/1.1 201 Created

Przykład 4. Tworzenie przypisania roli w zakresie jednostki administracyjnej w ramach wbudowanej definicji roli, która nie jest obsługiwana

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

Treść

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

Odpowiedź

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

Zakres dla jednostki administracyjnej jest włączony tylko podzbiór wbudowanych ról. Zapoznaj się z tą dokumentacją, aby uzyskać listę wbudowanych ról obsługiwanych przez jednostkę administracyjną.

Operacje GET dotyczące przypisania ról

Użyj interfejsu API List unifiedRoleAssignments , aby uzyskać przypisanie roli.

Przykład 5. Pobieranie przypisań ról dla danego podmiotu zabezpieczeń

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

Przykład 6. Pobieranie przypisań ról dla danej definicji roli

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

Przykład 7. Pobieranie przypisania roli według identyfikatora

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

Przykład 8. Pobieranie przypisań ról dla danego zakresu

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

Operacje DELETE na rolAssignment

Użyj interfejsu API Delete unifiedRoleAssignment , aby usunąć przypisanie roli.

Przykład 9: Usuwanie przypisania roli między użytkownikiem a definicją roli.

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

Response

HTTP/1.1 204 No Content

Przykład 10: Usuwanie przypisania roli, które już nie istnieje

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

Response

HTTP/1.1 404 Not Found

Przykład 11. Usuwanie przypisania roli między definicją roli administratora własnego i administratora globalnego

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

Uniemożliwiamy użytkownikom usunięcie własnej roli administratora globalnego, aby uniknąć scenariusza, w którym dzierżawa ma zerowych administratorów globalnych. Usuwanie innych ról przypisanych do siebie jest dozwolone.

Następne kroki