小编spo*_*ida的帖子

如何使用 Microsoft Graph 和 SDK 更新现有 B2C 用户的身份集合

我正在尝试更新identitiesAzure AD B2C 租户中现有用户的集合。federated具体来说,我正在尝试为用户添加另一个身份条目。

根据Microsoft Graph 文档,这应该是可能的,前提是我:

  1. User.ManageIdentities.All向我用来进行图形调用的客户端分配权限
  2. 发送整个现有身份集合,并附加新的身份条目(这也确保了具有signInType的现有身份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)

azure-ad-b2c microsoft-graph-sdks microsoft-graph-api

8
推荐指数
1
解决办法
4481
查看次数