我正在尝试更新identitiesAzure AD B2C 租户中现有用户的集合。federated具体来说,我正在尝试为用户添加另一个身份条目。
根据Microsoft Graph 文档,这应该是可能的,前提是我:
User.ManageIdentities.All向我用来进行图形调用的客户端分配权限userPrincipalName也在请求中发送)我已在 B2C 租户中注册了一个应用程序,并为其分配了访问 Microsoft Graph 的特定权限。我正在使用客户端凭据流程来获取具有声明中适当权限的访问令牌roles。我可以成功获取访问令牌,并通过检查颁发的 JWT 确认是否存在所需的权限。
我还使用Microsoft.Graph SDK从 C# 代码调用图 v1.0 端点。我正在尝试更新一个现有用户,该用户具有众所周知的 userId (objectId)。使用访问令牌,GraphServiceClient我可以成功检索用户。例如,下面的代码可以正常工作
var user = await client.Users[userId].Request()
.Select(o => new { o.Id, o.DisplayName, o.Identities })
.GetAsync();
Run Code Online (Sandbox Code Playgroud)
检索用户后,我尝试向该用户的属性添加另一个条目identities,并为该用户发出更新图调用。请注意,SDK 要求更新调用仅使用本地创建的对象,即您无法发送之前通过 SDK 获取的现有对象。
我的完整更新代码如下
async Task TryUpdateUser(GraphServiceClient client, string userId)
{
var user = await client.Users[userId].Request()
.Select(o => new { o.Id, o.DisplayName, o.Identities …Run Code Online (Sandbox Code Playgroud)