【发布时间】:2020-10-12 08:23:37
【问题描述】:
我正在尝试为应用程序创建“服务主体”,并使用 Microsoft graph API 授予管理员权限。
我按照以下步骤操作:
-
使用图形 API 在租户中创建应用程序。我的请求正文是:
{ "displayName": "AppWithPermissions", "requiredResourceAccess": [ { "resourceAppId": "00000002-0000-0ff1-ce00-000000000000", "resourceAccess": [ { "id": "dc890d15-9560-4a4c-9b7f-a736ec74ec40", "type": "Role" } ] } ] } -
为上面创建的应用程序创建了一个服务主体。创建成功。
-
现在,我想使用图形 API 以编程方式授予管理员同意每个分配的权限。
-
为了授予应用程序权限,我在 API 服务主体的 appRoleAssignedTo 集合中创建了一个应用角色分配: 请求如下:
发布请求:
https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo请求正文:
{ "principalId": "principal_id", "resourceId": "resource_id", "appRoleId": "approle_id" }
这里,
- “principal_id”是上述步骤 2 中创建的服务主体的“id”。
- "approle_id" 是您要授予的 appRole 的 id。 (从“requiredResourceAccess”中的“resourceAccess”数组中获取“id”值)
- http请求url中的“id”和“resource_id”是一样的。 (从“requiredResourceAccess”中获取“resourceAppId”值,对应于上面给出的“approle_id”)
运行查询后,我收到错误 404。 “代码”:“Request_ResourceNotFound” 对于“resource_id”/“id”字段。
- 添加屏幕截图以便更好地理解:
- 应用创建:
- 服务主体创建:
- 为服务主体授予 appRoleAssignment:
我对在哪里使用哪些 ID 感到困惑,并且没有从文档中得到明确的想法。任何人都可以解决我的问题吗?提前致谢。
【问题讨论】:
标签: azure-active-directory microsoft-graph-api azure-service-principal