我正在尝试为应用程序创建一个“服务主体”,并使用 Microsoft 图形 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。“代码”:“resource_id”/“id”字段的“Request_ResourceNotFound”。
- 添加屏幕截图以更好地理解:
- 应用程序创建:
- 服务主体创建:
- 为服务主体授予 appRoleAssignment:
我对在哪里使用哪些 ID 感到困惑,并且没有从文档中得到明确的想法。任何人都可以解决我的问题吗?提前致谢。