我试图找出如何使用Azure AD Graph API创建新的appRoleAssignment
。 (似乎较新的Microsoft Graph不支持创建应用程序角色分配)。我想使用默认角色。
var assignment = new Dictionary<string, string>();
assignment["id"] = "00000000-0000-0000-0000-000000000000";
assignment["principalId"] = "user-guid";
assignment["resourceId"] = "service-principal-guid";
var url = "https://graph.windows.net/{tenant.onmicrosoft.com}/servicePrinciapls/{service-principal-guid}/appRoleAssignments";
我也试过发帖到:
var url = "https://graph.windows.net/{tenant.onmicrosoft.com}/appRoleAssignments";
我{{}} {{}}希望创建作业的数据,但它给出了404错误。
POST
字典转换为JSON并发布。
答案 0 :(得分:1)
我们需要使用用户实体为用户创建appRoleAssignment,而不是使用servicePrincipal集合。以下是供您参考的示例:
POST:https://graph.windows.net/{tenant}/users/{userObjectId}/appRoleAssignments?api-version=1.6
authorization: Bearer {access_token}
Content-Type: application/json
{
"id":"00000000-0000-0000-0000-000000000000",
"resourceId":"{servicePrincipId}",
"principalId":"{userObjectId}"
}
答案 1 :(得分:1)
在this answer中,我们讨论了用户的GET
app角色分配的端点。相同的端点是您POST
创建新的应用角色分配的端点:
POST https://graph.windows.net/{tenant-id}/users/{id}/appRoleAssignments?api-version=1.6
...
{
"principalId":"{user-object-id}",
"resourceId":"{service-principal-object-id}",
"id":"00000000-0000-0000-0000-000000000000"
}
(在上面的示例中,我们使用00000000-0000-0000-0000-000000000000
作为应用角色ID,因为我们要创建默认分配(即“无角色”)。这将对应id
{ {1}}对象中的{1}},如果我们想将用户分配给特定的应用角色。)