获取 appRoleAssignment

命名空间:microsoft.graph

读取 appRoleAssignment 对象的属性和关系。

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

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

权限

下表显示了对每种受支持的资源类型调用此 API 所需的最低特权权限。 请遵循 最佳做法 来请求最低特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

支持的资源 委派(工作或学校帐户) 委派(个人 Microsoft 帐户) 应用程序
Group.Read.All 不支持。 Group.Read.All
servicePrincipal Application.Read.All 不支持。 Application.Read.All
用户 User.Read 不支持。 Directory.Read.All

重要

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

  • 来宾邀请者 - 仅读取用户的应用角色分配
  • 目录读取器
  • 目录同步帐户 - 用于 Microsoft Entra Connect 和 Microsoft Entra Cloud Sync 服务
  • 目录写入程序
  • 混合标识管理员
  • 标识治理管理员
  • 特权角色管理员
  • 用户管理员
  • 应用程序管理员
  • 云 应用程序管理员

其他支持的权限

每个资源都支持以下更高特权权限:

  • 组:
    • 委托和应用程序权限:Directory.Read.All、AppRoleAssignment.ReadWrite.All、Directory.ReadWrite.All
  • 用户:
    • 委托的权限:User.ReadBasic.All、Directory.Read.All、AppRoleAssignment.ReadWrite.All
    • 应用程序权限:Directory.Read.All、AppRoleAssignment.ReadWrite.All
  • 服务主体:
    • 委派的权限:Directory.Read.All、Application.ReadWrite.All、Directory.ReadWrite.All
    • 应用程序权限:Application.ReadWrite.OwnedBy、Application.ReadWrite.All、Directory.ReadWrite.All

HTTP 请求

若要获取授予服务主体的 appRole 的详细信息,请执行以下操作:

GET /servicePrincipals/{client-serviceprincipal-id}/appRoleAssignments/{appRoleAssignment-id}
GET /servicePrincipals(appId='{client-servicePrincipal-appId}')/appRoleAssignments/{appRoleAssignment-id}

若要获取为给定资源服务主体授予用户、组或客户端服务主体的 appRole 的详细信息,请执行以下操作:

GET /servicePrincipals(appId='{resource-servicePrincipal-appId}')/appRoleAssignedTo/{appRoleAssignment-id}
GET /servicePrincipals/{resource-serviceprincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}

若要获取授予组的 appRole 的详细信息,请执行以下操作:

GET /groups/{group-id}/appRoleAssignments/{appRoleAssignment-id}

若要获取授予用户的 appRole 的详细信息,请执行以下操作:

GET /users/{user-id}/appRoleAssignments/{appRoleAssignment-id}
GET /me/appRoleAssignments/{appRoleAssignment-id}

可选的查询参数

此方法支持 $select OData 查询参数来帮助自定义响应。 若要了解一般信息,请参阅 OData 查询参数

请求标头

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

请求正文

请勿提供此方法的请求正文。

响应

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

示例

示例 1:获取为给定资源服务主体授予用户、组或客户端服务主体的应用角色的详细信息

请求

以下请求查询资源服务主体,以获取它已授予客户端的应用角色的详细信息,该客户端可以是租户中的用户、组或客户端服务主体。

GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/appRoleAssignedTo/ep6PKgGvOkGVksMuwOXBpxV3dkHvwM1ElSjMUzZtaIA

响应

以下示例显示了相应的响应。 它显示了名为 Postman 的客户端服务主体已被授予 ID 为 df021288-bdef-4463-88db-98f22de89214(即 User.Read.All 应用程序权限)的应用角色,该角色是名为 Microsoft Graph 的资源服务主体的 User.Read.All 应用程序权限。

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

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals('00000003-0000-0000-c000-000000000000')/appRoleAssignedTo/$entity",
    "id": "ep6PKgGvOkGVksMuwOXBpxV3dkHvwM1ElSjMUzZtaIA",
    "deletedDateTime": null,
    "appRoleId": "df021288-bdef-4463-88db-98f22de89214",
    "createdDateTime": "2023-02-24T17:01:47.0988029Z",
    "principalDisplayName": "Postman",
    "principalId": "2a8f9e7a-af01-413a-9592-c32ec0e5c1a7",
    "principalType": "ServicePrincipal",
    "resourceDisplayName": "Microsoft Graph",
    "resourceId": "7408235b-7540-4850-82fe-a5f15ed019e2"
}

示例 2:获取授予服务主体的应用角色的详细信息

请求

以下请求查询客户端服务主体以获取向其授予的应用角色的详细信息。 在此实例中,应用角色表示应用程序权限。

GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='ceb96a54-de95-49a0-b38c-c55263fcf421')/appRoleAssignments/ep6PKgGvOkGVksMuwOXBpxV3dkHvwM1ElSjMUzZtaIA

响应

以下示例显示了相应的响应。 它显示了名为 Postman 的客户端服务主体已被授予 ID 为 df021288-bdef-4463-88db-98f22de89214(即 User.Read.All 应用程序权限)的应用角色,该角色是名为 Microsoft Graph 的资源服务主体的 User.Read.All 应用程序权限。

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

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals('ceb96a54-de95-49a0-b38c-c55263fcf421')/appRoleAssignments/$entity",
    "id": "ep6PKgGvOkGVksMuwOXBpxV3dkHvwM1ElSjMUzZtaIA",
    "deletedDateTime": null,
    "appRoleId": "df021288-bdef-4463-88db-98f22de89214",
    "createdDateTime": "2023-02-24T17:01:47.0988029Z",
    "principalDisplayName": "Postman",
    "principalId": "2a8f9e7a-af01-413a-9592-c32ec0e5c1a7",
    "principalType": "ServicePrincipal",
    "resourceDisplayName": "Microsoft Graph",
    "resourceId": "7408235b-7540-4850-82fe-a5f15ed019e2"
}

示例 3:获取授予已登录用户的应用角色的详细信息

请求

以下请求查询已登录用户的 appRoleAssignments。

GET https://graph.microsoft.com/v1.0/me/appRoleAssignments/Lo6gEKI-4EyAy9X91LBepo6Aq0Rt6QxBjWRl76txk8I

响应

以下示例显示了相应的响应。 它显示已登录用户具有名为 Postman 的资源服务主体的默认应用角色。

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

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('10a08e2e-3ea2-4ce0-80cb-d5fdd4b05ea6')/appRoleAssignments/$entity",
    "id": "Lo6gEKI-4EyAy9X91LBepo6Aq0Rt6QxBjWRl76txk8I",
    "deletedDateTime": null,
    "appRoleId": "00000000-0000-0000-0000-000000000000",
    "createdDateTime": "2022-09-08T17:43:57.8423817Z",
    "principalDisplayName": "MOD Administrator",
    "principalId": "10a08e2e-3ea2-4ce0-80cb-d5fdd4b05ea6",
    "principalType": "User",
    "resourceDisplayName": "Postman",
    "resourceId": "2a8f9e7a-af01-413a-9592-c32ec0e5c1a7"
}