我正在尝试使用以下代码添加AppRoleAssignment:
AppRoleAssignment objAppRoleAssignment = new AppRoleAssignment();
objAppRoleAssignment.Id = Guid.Parse("00000000-0000-0000-0000-000000000000");
objAppRoleAssignment.ResourceId = Guid.Parse("ServicePrincipalID");
objAppRoleAssignment.PrincipalType = "User";
objAppRoleAssignment.PrincipalId = Guid.Parse(user.ObjectId);
user.AppRoleAssignments.Add(objAppRoleAssignment);
await user.UpdateAsync();
我没有任何角色,因此我指定了默认的00000000-0000-0000-0000-000000000000
角色
但是我收到了这个错误:
{"odata.error":{"code":"Request_BadRequest","message":{"lang":"en","value":"One or more properties are invalid."},"values":null}}
答案 0 :(得分:1)
你这样做是正确的。似乎存在两个错误,使得您的更改似乎没有得到保存。
找到名为“id”的属性的空值,该属性具有预期类型“Edm.Guid [Nullable = False]”。期望的类型'Edm.Guid [Nullable = False]'不允许空值。
https://graph.windows.net/[yourtenant]/servicePrincipals/[ResourceID]/appRoleAssignedTo
或
https://graph.windows.net/[yourtenant]/users/[PrincipalID]/appRoleAssignments
我们正在考虑纠正这个问题,但在此期间您可以选择在#1中吞下例外,或者不使用SDK并手动将您的发布请求发送到appRoleAssignments。