向组授予 appRoleAssignment

命名空间:microsoft.graph

重要

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

使用此 API 将应用角色分配给安全组。 该组的所有直接成员都将被视为已分配。 支持具有动态成员身份的安全组。 若要向组授予应用角色分配,需使用三个标识符:

  • principalId:要向其分配应用角色的 的 ID。
  • resourceId:已定义应用角色的资源 servicePrincipal 的 ID。
  • appRoleId:要分配给组的 appRole (在资源服务主体上定义)的 ID。

使用组来管理对应用程序的访问,可能还需要其他许可证。

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

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

权限

为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

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

重要

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

  • 目录同步帐户 - 用于 Microsoft Entra Connect 和 Microsoft Entra Cloud Sync 服务
  • 目录写入程序
  • 混合标识管理员
  • 标识治理管理员
  • 特权角色管理员
  • 用户管理员
  • 应用程序管理员
  • 云 应用程序管理员

HTTP 请求

POST /groups/{groupId}/appRoleAssignments

注意

最佳做法是,建议通过资源服务主体的 appRoleAssignedTo 关系(而不是通过分配的用户、组或服务主体的 appRoleAssignments 关系)创建应用角色分配。

请求标头

名称 说明
Authorization 持有者 {token}。 必填。 详细了解 身份验证和授权
Content-type application/json. 必需。

请求正文

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

下表列出了创建 appRoleAssignment 时所需的属性。 根据需要为 appRoleAssignment 指定其他可写属性。

属性 类型 说明
appRoleId Guid 分配给主体的应用角色的标识符 (id)。 必须在资源应用程序的服务主体 (resourceId) 上的 appRoles 属性中公开此应用角色。 如果资源应用程序尚未声明任何应用角色,则可以指定默认应用角色 ID 00000000-0000-0000-0000-000000000000,以表示将主体分配给资源应用,但没有任何特定应用角色。
principalId Guid 组的唯一标识符(ID被授予应用角色。
resourceId Guid 已为其分配的资源服务主体的唯一标识符 (id)。

响应

如果成功,此运营商将在响应正文中返回 201 Created 响应代码和 appRoleAssignment 对象。

示例

请求

以下示例显示了一个请求。 在此示例中,URL 中的 ID 和 principalId 的值都将是已分配组的 ID。

POST https://graph.microsoft.com/beta/groups/7679d9a4-2323-44cd-b5c2-673ec88d8b12/appRoleAssignments
Content-Type: application/json

{
  "principalId": "7679d9a4-2323-44cd-b5c2-673ec88d8b12",
  "resourceId": "076e8b57-bac8-49d7-9396-e3449b685055",
  "appRoleId": "00000000-0000-0000-0000-000000000000"
}

响应

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

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

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#groups('7679d9a4-2323-44cd-b5c2-673ec88d8b12')/appRoleAssignments/$entity",
  "id": "pNl5diMjzUS1wmc-yI2LEkGgWqFFrFdLhG2Ly2CysL4",
  "deletedDateTime": null,
  "appRoleId": "00000000-0000-0000-0000-000000000000",
  "creationTimestamp": "2021-02-19T17:55:08.3369542Z",
  "principalDisplayName": "Young techmakers",
  "principalId": "7679d9a4-2323-44cd-b5c2-673ec88d8b12",
  "principalType": "Group",
  "resourceDisplayName": "Yammer",
  "resourceId": "076e8b57-bac8-49d7-9396-e3449b685055"
}