创建 unifiedRoleAssignment

命名空间:microsoft.graph

重要

Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

创建新的 unifiedRoleAssignment 对象。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

权限

要调用此 API,需要以下权限之一。 若要了解详细信息,包括如何选择权限的信息,请参阅权限

对于目录 (Microsoft Entra ID) 提供程序

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) RoleManagement.ReadWrite.Directory
委派(个人 Microsoft 帐户) 不支持。
应用程序 RoleManagement.ReadWrite.Directory

对于权利管理提供程序

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) EntitlementManagement.ReadWrite.All
委派(个人 Microsoft 帐户) 不支持。
应用程序 不支持。

对于Exchange Online提供程序

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) RoleManagement.ReadWrite.Exchange
委派(个人 Microsoft 帐户) 不支持。
应用程序 RoleManagement.ReadWrite.Exchange

HTTP 请求

为目录提供程序创建角色分配:

POST /roleManagement/directory/roleAssignments

为权利管理提供程序创建角色分配:

POST /roleManagement/entitlementManagement/roleAssignments

为Exchange Online提供程序创建角色分配:

POST /roleManagement/exchange/roleAssignments

请求标头

名称 说明
Authorization 持有者 {token}。 必填。 详细了解 身份验证和授权

请求正文

在请求正文中,提供 unifiedRoleAssignment 对象的 JSON 表示形式。

创建 unifiedRoleAssignment 时,可以指定以下属性。

属性 类型 说明
appScopeId String 必填。 分配范围特定于应用的作用域的标识符。 分配的范围确定已向其授予主体访问权限的资源集。 应用范围是仅由资源应用程序定义和理解的范围。

对于权利管理提供程序,请使用此属性指定目录,例如 /AccessPackageCatalog/beedadfe-01d5-4025-910b-84abb9369997

必须指定 appScopeIddirectoryScopeId
directoryScopeId String 必填。 表示分配范围的 目录对象的 标识符。 分配的范围确定已向其授予主体访问权限的资源集。 目录范围是存储在目录中的共享范围,可由多个应用程序理解,这与仅由资源应用程序定义和理解的应用范围不同。

对于目录 (Microsoft Entra ID) 提供程序,此属性支持以下格式:
  • / 租户范围
  • /administrativeUnits/{administrativeunit-ID} 将 范围限定为管理单元
  • /{application-objectID} 将范围限定为资源应用程序
  • /attributeSets/{attributeSet-ID} 将范围限定为属性集

    对于权利管理提供程序, / 适用于租户范围。 若要限定为访问包目录,请使用 appScopeId 属性。

    对于Exchange Online提供程序,此属性支持以下格式:
  • / 租户范围
  • /Users/{ObjectId of user} 将角色分配范围限定为特定用户
  • /AdministrativeUnits/{ObjectId of AU} 将角色分配范围限定为管理单元
  • /Groups/{ObjectId of group} 将角色权限限定为定向特定组的成员

    必须指定 appScopeIddirectoryScopeId
  • principalId String 必填。 向其授予分配的主体的标识符。
    roleDefinitionId String 分配所针对的 unifiedRoleDefinition 的标识符。 此为只读属性。 支持 $filtereqin)。

    响应

    如果成功,此方法在响应正文中返回响应 201 Created 代码和新的 unifiedRoleAssignment 对象。

    示例

    示例 1:创建具有租户范围的角色分配

    请求

    以下示例显示了一个请求。 请注意,将 roleTemplateId 用于 roleDefinitionId。 roleDefinitionId 可以是服务范围的模板 ID 或特定于目录的 roleDefinitionId。

    POST https://graph.microsoft.com/beta/roleManagement/directory/roleAssignments
    Content-type: application/json
    
    { 
        "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
        "roleDefinitionId": "c2cf284d-6c41-4e6b-afac-4b80928c9034",
        "principalId": "f8ca5a85-489a-49a0-b555-0a6d81e56f0d",
        "directoryScopeId": "/"
    }
    

    响应

    以下示例显示了相应的响应。

    注意:为了提高可读性,可能缩短了此处显示的响应对象。

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
        "@odata.context": "https://graph.microsoft.com/beta/$metadata#roleManagement/directory/roleAssignments/$entity",
        "id": "YUb1sHQtUEyvox7IA_Eu_mm3jqnUe4lEhvatluHVi2I-1",
        "roleDefinitionId": "c2cf284d-6c41-4e6b-afac-4b80928c9034",
        "principalId": "f8ca5a85-489a-49a0-b555-0a6d81e56f0d",
        "directoryScopeId": "/"
    }
    

    示例 2:创建具有管理单元范围的角色分配

    请求

    以下示例将用户管理员角色分配给具有管理单元范围的主体。

    POST https://graph.microsoft.com/beta/roleManagement/directory/roleAssignments
    Content-type: application/json
    
    {
        "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
        "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
        "principalId": "f8ca5a85-489a-49a0-b555-0a6d81e56f0d",
        "directoryScopeId": "/administrativeUnits/5d107bba-d8e2-4e13-b6ae-884be90e5d1a"
    }
    

    响应

    以下示例显示了相应的响应。

    注意:为了提高可读性,可能缩短了此处显示的响应对象。

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
        "@odata.context": "https://graph.microsoft.com/beta/$metadata#roleManagement/directory/roleAssignments/$entity",
        "id": "BH21sHQtUEyvox7IA_Eu_mm3jqnUe4lEhvatluHIWb7-1",
        "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
        "principalId": "f8ca5a85-489a-49a0-b555-0a6d81e56f0d",
        "directoryScopeId": "/administrativeUnits/5d107bba-d8e2-4e13-b6ae-884be90e5d1a"
    }
    

    示例 3:创建具有属性集范围的角色分配

    请求

    以下示例将属性分配管理员角色分配给具有名为 Engineering 的属性集范围的主体。 有关Microsoft Entra自定义安全属性和属性集范围的详细信息,请参阅在 Microsoft Entra ID 中管理对自定义安全属性的访问

    POST https://graph.microsoft.com/beta/roleManagement/directory/roleAssignments
    Content-type: application/json
    
    {
        "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
        "roleDefinitionId": "58a13ea3-c632-46ae-9ee0-9c0d43cd7f3d",
        "principalId": "f8ca5a85-489a-49a0-b555-0a6d81e56f0d",
        "directoryScopeId": "/attributeSets/Engineering"
    }
    

    响应

    以下示例显示了相应的响应。

    注意:为了提高可读性,可能缩短了此处显示的响应对象。

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
        "@odata.context": "https://graph.microsoft.com/beta/$metadata#roleManagement/directory/roleAssignments/$entity",
        "id": "oz6hWDLGrkae4JwNQ81_PU-mYqx8m71OpqEQPdN1u",
        "roleDefinitionId": "58a13ea3-c632-46ae-9ee0-9c0d43cd7f3d",
        "principalId": "f8ca5a85-489a-49a0-b555-0a6d81e56f0d",
        "directoryScopeId": "/attributeSets/Engineering"
    }
    

    示例 4:创建具有访问包目录范围的角色分配

    请求

    以下示例显示了一个请求。

    POST https://graph.microsoft.com/beta/roleManagement/entitlementManagement/roleAssignments
    Content-type: application/json
    
    {
        "principalId": "679a9213-c497-48a4-830a-8d3d25d94ddc",
        "roleDefinitionId": "ae79f266-94d4-4dab-b730-feca7e132178",
        "appScopeId": "/AccessPackageCatalog/beedadfe-01d5-4025-910b-84abb9369997"
    }
    

    响应

    以下示例显示了相应的响应。

    注意:为了提高可读性,可能缩短了此处显示的响应对象。

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
        "@odata.context": "https://graph.microsoft.com/beta/$metadata#roleManagement/entitlementManagement/roleAssignments/$entity",
        "id": "f3092518-7874-462e-93e9-0cd6c11ffc52",
        "principalId": "679a9213-c497-48a4-830a-8d3d25d94ddc",
        "roleDefinitionId": "ae79f266-94d4-4dab-b730-feca7e132178",
        "appScopeId": "/AccessPackageCatalog/beedadfe-01d5-4025-910b-84abb9369997"
    }
    

    示例 5:为具有管理单元范围的Exchange Online提供程序创建角色分配

    请求

    以下示例显示了一个请求。

    POST https://graph.microsoft.com/beta/roleManagement/exchange/roleAssignments
    Content-type: application/json
    
    {
        "principalId": "/ServicePrincipals/0451dbb9-6336-42ea-b58f-5953dc053ece",
        "roleDefinitionId": "f66ab1ee-3cac-4d03-8a64-dadc56e563f8",
        "directoryScopeId": "/AdministrativeUnits/8b532c7a-4d3e-4e99-8ffa-2dfec92c62eb",
        "appScopeId": null
    }
    

    响应

    以下示例显示了相应的响应。

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
        "@odata.context": "https://graph.microsoft.com/beta/$metadata#roleManagement/exchange/roleAssignments/$entity",
        "id": "c5dd3ab8-374f-42e9-b163-eb7c54b53755",
        "principalId": "/ServicePrincipals/0451dbb9-6336-42ea-b58f-5953dc053ece",
        "roleDefinitionId": "f66ab1ee-3cac-4d03-8a64-dadc56e563f8",
        "directoryScopeId": "/AdministrativeUnits/8b532c7a-4d3e-4e99-8ffa-2dfec92c62eb",
        "appScopeId": null
    }