创建 unifiedRoleAssignment

命名空间:microsoft.graph

创建新的 unifiedRoleAssignment 对象。

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

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

权限

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

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

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

重要

在具有工作或学校帐户的委托方案中,必须为登录用户分配受支持的Microsoft Entra角色或具有支持的角色权限的自定义角色。 特权角色管理员 是此操作支持的最低特权角色。

对于权利管理提供程序

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

HTTP 请求

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

POST /roleManagement/directory/roleAssignments

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

POST /roleManagement/entitlementManagement/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} 将范围限定为资源应用程序

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

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

    响应

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

    示例

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

    请求

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

    POST https://graph.microsoft.com/v1.0/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/v1.0/$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/v1.0/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/v1.0/$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:创建具有应用程序范围的角色分配

    请求

    以下示例为主体分配应用程序范围内的应用程序管理员角色。 应用程序注册的对象 ID 为 661e1310-bd76-4795-89a7-8f3c8f855bfc。

    POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
    Content-type: application/json
    
    {
        "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
        "principalId": "6b937a9d-c731-465b-a844-2d5b5368c161",
        "roleDefinitionId": "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3",
        "directoryScopeId": "/661e1310-bd76-4795-89a7-8f3c8f855bfc"
    }
    

    响应

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

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

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
        "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignments/$entity",
        "id": "kl2Jm9Msx0SdAqasLV6lw516k2sxx1tGqEQtW1NowWEQEx5mdr2VR4mnjzyPhVv8-1",
        "principalId": "6b937a9d-c731-465b-a844-2d5b5368c161",
        "directoryScopeId": "/661e1310-bd76-4795-89a7-8f3c8f855bfc",
        "roleDefinitionId": "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3"
    }
    

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

    请求

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

    POST https://graph.microsoft.com/v1.0/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/v1.0/$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"
    }