我已经注册了一个名为“API”的应用程序,并且为此应用程序我在清单中添加了两个应用程序角色
"appRoles": [
{
"allowedMemberTypes": [
"Application"
],
"description": "Demo Role for application.",
"displayName": "Demo Role",
"id": "42ee481e-b4bc-4afa-9499-586bc2a079be",
"isEnabled": true,
"lang": null,
"origin": "Application",
"value": "demo.role"
},
{
"allowedMemberTypes": [
"Application"
],
"description": "Test Role for application.",
"displayName": "Test Role",
"id": "42ee481e-b4bc-4afa-9499-586bc2a079bd",
"isEnabled": true,
"lang": null,
"origin": "Application",
"value": "test.role"
}
]
现在我已经注册了另一个名为“客户端应用程序”的应用程序,我想将此应用程序分配到我在应用程序“API”中定义的两个应用程序角色之上
通过搜索文档,我发现我们将权限分配给了应用程序服务主体,而不是 Application 对象。
这是我在文档中找到的示例代码...
AppRoleAssignment appRoleAssignment = new AppRoleAssignment();
appRoleAssignment.principalId = UUID.fromString("33ad69f9-da99-4bed-acd0-3f24235cb296");
appRoleAssignment.resourceId = UUID.fromString("9028d19c-26a9-4809-8e3f-20ff73e2d75e");
appRoleAssignment.appRoleId = UUID.fromString("ef7437e6-4f94-4a0a-a110-a439eb2aa8f7");
graphClient.servicePrincipals("9028d19c-26a9-4809-8e3f-20ff73e2d75e").appRoleAssignedTo()
.buildRequest()
.post(appRoleAssignment);
principalId:您要为其分配应用角色的用户、组或客户端 servicePrincipal 的 ID。-- 在哪里可以找到principalId?这是“客户端应用程序”的 objectId 吗?
resourceId:已定义应用角色的资源 servicePrincipal 的 id。我在哪里可以找到资源 ID?-- 这是定义了应用角色的“API”应用程序的对象ID吗?
appRoleId:要分配给用户、组或服务主体的 appRole 的 ID(在资源服务主体上定义)。-- 我找到了应用程序角色 id——“API”应用程序清单中的应用程序角色中提到的 guid。
请协助。