【问题标题】:What to use for federated AAD for B2C issuerAssignedId?B2C issuerAssignedId 的联合 AAD 使用什么?
【发布时间】:2020-11-05 21:10:53
【问题描述】:

如何获取联合 Azure Active Directory 的 issuerAssignedId? 我的设置如下:我有一个特定于应用程序的 B2C,并且我有一个使用 OpenID Connect 与我的 B2C 联合的活动目录。对于元数据,我使用以下端点: https://login.microsoftonline.com/{tenant_id}/v2.0/.well-known/openid-configuration

当用户自己注册时,这工作正常。但是,对于我的特定业务流程,我不能让他们这样做。我需要从应用程序本身预先播种这些用户。为此,我编写了一个 Microsfot Graph 包装器并尝试从这个外部目录创建用户。我正在尝试使用以下参数创建用户:

POST /v1.0/users/ HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer my_token_received_using_client_credentials
Content-Type: application/json
Content-Length: 263

{
  "displayName": "John Smith",
  "identities": [
    {
      "signInType": "federated",
      "issuer": "https://login.microsoftonline.com/{tenant_id}/v2.0",
      "issuerAssignedId": "{**my_user_id_from_federated_active_directory**}"
    }
  ]
}

如您所见,对于 issuerAssignedId,我使用的是联合 Active Directory 中的用户 ID。但是,此代码不起作用,因为当我使用重定向到 jwt.ms 的登录流程时,出现以下错误:

AADB2C99002:用户不存在。请先注册,然后才能登录。

对于我的联合用户,我应该为这个字段使用什么?

附:我对本地帐户没有任何问题,但我不能将它们用于我的应用程序。我必须使用来自外部 AD 的用户。

【问题讨论】:

  • 您是否为 Azure ad b2c 使用客户端凭据流? b2c 尚不支持此流程。
  • 您使用的是自定义策略还是用户流?当我最后一次这样做时,我使用 issuerAssignedId 中的 AAD 用户 ObjectId 为帐户播种。您可以通过 Graph Api beta 端点检查注册的用户以查看其 issuerAssignedId。

标签: azure-active-directory azure-ad-b2c


【解决方案1】:

好吧,我终于想通了。对方 AAD 在“子”字段中返回一些废话(可能取决于内部策略或其他内容),您必须使用“oid”字段(本质上是来自 AAD 的用户对象 ID)。

【讨论】:

  • 我想知道什么对你有用。您是否使用“oid”为“issuerAssignedId”提供值?
  • 是的,oid 正是我想要的。它可以是令牌的任何部分,你可以把“iss”放在那里。它没有任何意义,但它应该可以工作。
猜你喜欢
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
  • 2021-03-02
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
相关资源
最近更新 更多