Microsoft Entra ID에서 Microsoft Graph API 사용하여 사용자 지정 관리자 역할 할당
Microsoft Graph API를 사용하여 사용자 계정에 역할을 할당하는 방법을 자동화할 수 있습니다. 이 문서에서는 roleAssignments에 대한 POST, GET 및 DELETE 작업에 대해 설명합니다.
필수 조건
- Microsoft Entra ID P1 또는 P2 라이선스
- 권한 있는 역할 관리자
- Microsoft Graph API용 Graph 탐색기 사용 시 관리자 동의.
자세한 내용은 PowerShell 또는 Graph Explorer를 사용하기 위한 필수 조건을 참조하세요.
RoleAssignment에 대한 POST 작업
Create unifiedRoleAssignment API를 사용하여 역할을 할당합니다.
예제 1: 사용자와 역할 정의 간에 역할 할당 만들기
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
Content-type: application/json
본문
{
"@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.
}
응답
HTTP/1.1 201 Created
예제 2: 보안 주체 또는 역할 정의가 없는 역할 할당 만들기
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
본문
{
"@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.
}
응답
HTTP/1.1 404 Not Found
예제 3: 단일 리소스 범위에 대한 역할 할당 만들기
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
본문
{
"@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
}
응답
HTTP/1.1 201 Created
예제 4: 지원되지 않는 기본 제공 역할 정의에 대한 관리 단위 범위 역할 할당 만들기
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
본문
{
"@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
}
응답
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."
}
}
}
관리 단위 범위로는 기본 제공 역할의 하위 집합만 사용할 수 있습니다. 관리 단위에 대해 지원되는 기본 제공 역할 목록은 이 문서를 참조하세요.
RoleAssignment에 대한 GET 작업
List unifiedRoleAssignments API를 사용하여 역할 할당을 가져옵니다.
예제 5: 지정된 보안 주체에 대한 역할 할당 가져오기
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalId+eq+'<object-id-of-principal>'
응답
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": "/"
}
]
}
예제 6: 지정된 역할 정의에 대한 역할 할당 가져오기
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=roleDefinitionId+eq+'<object-id-or-template-id-of-role-definition>'
응답
HTTP/1.1 200 OK
{
"value":[
{
"id": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1wIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
"directoryScopeId": "/"
}
]
}
예제 7: ID별 역할 할당 가져오기
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
응답
HTTP/1.1 200 OK
{
"id": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0uIiSDKQoTVJrLE9etXyrY0-1",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/"
}
예제 8: 지정된 범위에 대한 역할 할당 가져오기
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=directoryScopeId+eq+'/d23998b1-8853-4c87-b95f-be97d6c6b610'
응답
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"
}
]
}
RoleAssignment에 대한 DELETE 작업
Delete unifiedRoleAssignment API를 사용하여 역할 할당을 삭제합니다.
예제 9: 사용자와 역할 정의 간에 역할 할당 삭제
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
응답
HTTP/1.1 204 No Content
예제 10: 더 이상 존재하지 않는 역할 할당 삭제
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
응답
HTTP/1.1 404 Not Found
예제 11: 자체 역할 정의와 전역 관리자 역할 정의 간에 역할 할당 삭제
DELETE https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
응답
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
}
}
}
테넌트에 전역 관리자가 없는 시나리오를 방지하기 위해, 사용자는 자신의 전역 관리자 역할을 삭제할 수 없습니다. 자신에게 할당된 다른 역할은 제거할 수 있습니다.
다음 단계
- Microsoft Entra 관리 역할 포럼에서 자유롭게 공유해 주세요.
- 역할 권한에 대한 자세한 내용은 Microsoft Entra 기본 제공 역할을참조하세요.
- 기본 사용자 권한의 경우 기본 게스트 및 멤버 사용자 권한 비교를 참조하세요.