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

How to use Azure AD Graph API to create a new AppRoleAssignment

我正在尝试弄清楚如何使用 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";

我正在 POST 处理数据,希望创建作业,但出现 404 错误。

assignment 词典被转换为 JSON 并发布。

我们需要使用用户实体为用户创建 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}"    
}

中,我们讨论了 GET 用户应用角色分配的端点。相同的端点是您 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,因为我们要创建默认分配(即 "no role")。这将对应于 id ServicePrincipal 对象中的 AppRole 如果我们想将用户分配给特定的应用程序角色。)