如何使用Azure AD Graph API创建新的AppRoleAssignment

时间:2017-07-25 00:09:08

标签: azure-ad-graph-api

我试图找出如何使用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并发布。

2 个答案:

答案 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}},如果我们想将用户分配给特定的应用角色。)