Tilldela anpassade administratörsroller med hjälp av Microsoft Graph API i Microsoft Entra-ID
Du kan automatisera hur du tilldelar roller till användarkonton med hjälp av Microsoft Graph API. Den här artikeln beskriver POST-, GET- och DELETE-åtgärder för roleAssignments.
Förutsättningar
- Microsoft Entra ID P1- eller P2-licens
- Administratör för privilegierad roll
- Administratörsmedgivande när du använder Graph Explorer för Microsoft Graph API
Mer information finns i Krav för att använda PowerShell eller Graph Explorer.
POST-åtgärder på RoleAssignment
Använd API:et Create unifiedRoleAssignment för att tilldela rollen.
Exempel 1: Skapa en rolltilldelning mellan en användare och en rolldefinition
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Content-type: application/json
Brödtext
{
"@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.
}
Svar
HTTP/1.1 201 Created
Exempel 2: Skapa en rolltilldelning där huvudnamns- eller rolldefinitionen inte finns
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Brödtext
{
"@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.
}
Svar
HTTP/1.1 404 Not Found
Exempel 3: Skapa en rolltilldelning för ett enda resursomfång
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Brödtext
{
"@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
}
Svar
HTTP/1.1 201 Created
Exempel 4: Skapa en rolltilldelning som är begränsad till en administrativ enhet på en inbyggd rolldefinition som inte stöds
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Brödtext
{
"@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
}
Svar
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."
}
}
}
Endast en delmängd av inbyggda roller är aktiverade för omfång för administrativa enheter. I den här dokumentationen finns en lista över inbyggda roller som stöds i en administrativ enhet.
GET-åtgärder på RoleAssignment
Använd API:et List unifiedRoleAssignments för att hämta rolltilldelningen.
Exempel 5: Hämta rolltilldelningar för ett visst huvudnamn
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": "/"
}
]
}
Exempel 6: Hämta rolltilldelningar för en viss rolldefinition
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": "/"
}
]
}
Exempel 7: Hämta en rolltilldelning efter ID
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": "/"
}
Exempel 8: Hämta rolltilldelningar för ett visst omfång
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"
}
]
}
DELETE-åtgärder på RoleAssignment
Använd API:et Ta bort unifiedRoleAssignment för att ta bort rolltilldelningen.
Exempel 9: Ta bort en rolltilldelning mellan en användare och en rolldefinition.
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
Response
HTTP/1.1 204 No Content
Exempel 10: Ta bort en rolltilldelning som inte längre finns
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
Response
HTTP/1.1 404 Not Found
Exempel 11: Ta bort en rolltilldelning mellan rolldefinitionen Själv och Global administratör
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
}
}
}
Vi hindrar användare från att ta bort sin egen globala administratörsroll för att undvika ett scenario där en klientorganisation inte har några globala administratörer. Det är tillåtet att ta bort andra roller som tilldelats själv.
Nästa steg
- Dela gärna med oss på microsoft entra-forumet för administrativa roller
- Mer information om rollbehörigheter finns i Inbyggda Microsoft Entra-roller
- För standardanvändarbehörigheter, se en jämförelse av standardbehörigheter för gäst- och medlemsanvändare