代理通常需要在 Microsoft Graph 和其他需要Microsoft Entra ID 应用程序权限(表示为应用角色)的 Web 服务中采取措施。 自治代理需要从 Microsoft Entra ID 管理员请求这些权限。 本文逐步讲解使用在前面的步骤中创建的代理标识从管理员请求应用程序权限的过程。
可通过两种方法向自治代理授予应用程序权限:
- 管理员可以使用 Microsoft Graph API 或 PowerShell 创建 appRoleAssignment 。
- 代理可以使用管理员同意 URL 将管理员定向到同意页面。
先决条件
在向代理身份授予权限之前,请确保您已准备好以下内容:
- 已创建的代理标识(请参阅 创建和删除代理标识)
- Microsoft Entra ID 租户中的管理员权限
- 了解您的代理所需的特定权限
通过 API 创建应用角色分配
使用以下步骤获取应用角色分配。
获取具有
Application.Read.All和AppRoleAssignment.ReadWrite.All委派权限的访问令牌。获取要尝试访问的资源服务主体的对象 ID。 例如,若要查找 Microsoft Graph 服务主体对象 ID:
- 转到 Microsoft Entra 管理中心。
- 导航到 Entra ID -->企业应用程序
- 按应用程序类型 == Microsoft 应用程序进行筛选
- 搜索 Microsoft Graph。
获取 要分配的应用角色的唯一 ID。
创建应用角色分配:
POST https://graph.microsoft.com/v1.0/servicePrincipals/<agent-identity-id>/appRoleAssignments Authorization: Bearer <token> Content-Type: application/json { "principalId": "<agent-identity-id>", "resourceId": "<microsoft-graph-sp-object-id>", "appRoleId": "<app-role-id>" }
从租户管理员请求授权
若要授予委派的权限,请构造用于提示管理员的授权 URL。 角色参数用于指定请求的应用程序权限。
请确保在以下请求中使用代理标识客户端 ID。
https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0/adminconsent
?client_id=<agent-identity-client-id>
&role=User.Read.All
&redirect_uri=https://entra.microsoft.com/TokenAuthorize
&state=xyz123
代理实现可能会以各种方式将管理员重定向到此 URL,例如,将其包含在聊天窗口中发送给管理员的消息中。 当管理员重定向到此 URL 时,系统会要求他们登录并授予对范围参数中指定的权限的同意。 目前,必须使用列出的重定向 URI,这会在授予许可后将管理员定向到空白页。
向应用程序授予所需权限后,请求新的代理访问令牌,使权限生效。