向服务主体授予 appRoleAssignment

命名空间:microsoft.graph

向客户端服务主体分配一个应用角色。

分配给服务主体的应用角色也被称为应用程序权限。 应用程序权限可以通过应用角色分配直接授予,或通过协议体验授予。

若要向客户端服务主体授予应用角色分配,需使用三个标识符:

  • principalId: 或要向其分配应用角色的客户端服务主体的 id
  • resourceId:已定义应用角色(应用程序权限)的资源 servicePrincipal (API) 的 id
  • appRoleId:要分配给客户端服务主体的 appRole(在资源服务主体上定义)的 id

权限

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

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

HTTP 请求

POST /servicePrincipals/{id}/appRoleAssignments

备注

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

请求标头

名称 说明
Authorization Bearer {token}。必需。
Content-type application/json. Required.

请求正文

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

响应

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

示例

请求

下面是一个请求示例。

POST https://graph.microsoft.com/v1.0/servicePrincipals/9028d19c-26a9-4809-8e3f-20ff73e2d75e/appRoleAssignments
Content-Type: application/json

{
  "principalId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
  "resourceId": "8fce32da-1246-437b-99cd-76d1d4677bd5",
  "appRoleId": "498476ce-e0fe-48b0-b801-37ba7e2685c6"
}

请注意,在本示例中,请求 URL (9028d19c-26a9-4809-8e3f-20ff73e2d75e) 中用作服务主体 id 的值与正文中的 principalId 属性相同。resourceId 的值是资源服务主体(该 API)的 id

响应

下面是一个响应示例。

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

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#appRoleAssignments/$entity",
  "id": "2jLOj0YSe0OZzXbR1Gd71fDqFUrPM1xIgUfvWBHJ9n0",
  "createdDateTime": "2021-02-15T16:39:38.2975029Z",
  "appRoleId": "498476ce-e0fe-48b0-b801-37ba7e2685c6",
  "principalDisplayName": "Fabrikam App",
  "principalId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
  "principalType": "ServicePrincipal",
  "resourceDisplayName": "Microsoft Graph",
  "resourceId": "8fce32da-1246-437b-99cd-76d1d4677bd5"
}