azure-ad-b2c - 如何将用户添加为来自另一个 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 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 编码。
推荐阅读
- ruby-on-rails - 使用布尔按钮的帮助类
- angular - 如何禁用使用 Angular 2 项目开发的应用程序的 F5 或刷新按钮
- c# - 将选定的字符串从下拉列表传递到控制器
- python - Why does Python function return 1.0 (float) when `return 1` is specified?
- bigtable - 带有版本控制的 Google Cloud Bigtable 更新或插入
- xtext - 在 Xtext 格式化程序中禁用换行
- ruby - 在 JRuby 和 MRI 之间共享 Gemfile.lock
- ios - HealthKit requestAuthorization for correlationType(forIdentifier: .bloodPressure)
- python - 从 html 中抓取表格(并且 ID 方法不起作用)
- android - 在侦听器中获取 Kochava 归因错误