首页 > 解决方案 > 如何将用户添加为来自另一个 IDP 的成员?

问题描述

我们通过 Open ID Connect 将 ADB2C 租户与身份提供者设置连接到另一个组织中的 Okta 设置。

我们有一个管理 UI 来添加用户。我看到 GraphAPI 有一个 createUser ,它接受一个带有 Password 和 changePwdOnFirstUse 设置的json。可以将直接成员添加到 ADB2C。

我遇到的问题是,如何从其他 Okta 组织添加用户,以便当该用户登录到我的应用程序(并由 Okta 进行身份验证)时,可以登录到我的应用程序。

目前,从 Okta 进行身份验证后,我们看到 User not found Error。

我想,我不能使用相同的 createUser 方法通过 Graph API 添加这个用户,因为这个用户密码不是我们应该管理的。

如何将此其他组织用户添加到 ADB2C,以便我看不到此“找不到用户”问题?

谢谢。

标签: azure-ad-b2cazure-ad-graph-api

解决方案


使用 Azure AD Graph API,您可以创建一个外部帐户 user,并将用户对象的userIdentities属性设置为Okta 的 ID 令牌的子(主题)声明:

{
  "accountEnabled": false,
  "displayName": "John Smith",
  "mailNickname": "john.smith",
  "otherMails": [
    "john.smith@company.com"
  ],
  "userIdentities": [
    {
      "issuer": "{okta-id-token-iss-claim-value}",
      "issuerUserId": "{okta-id-token-sub-claim-value}"
    }
  ],
  "userPrincipalName": "{guid}@{your-tenant-name}.onmicrosoft.com"
}

其中issuerUserId必须设置为Okta 的 ID 令牌的sub声明的 base64 编码。


推荐阅读