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
- Możesz się z nami podzielić na forum ról administracyjnych firmy Microsoft Entra
- Aby uzyskać więcej informacji na temat uprawnień roli, zobacz Wbudowane role firmy Microsoft
- Aby uzyskać domyślne uprawnienia użytkownika, zobacz porównanie domyślnych uprawnień gościa i użytkownika członkowskiego