【发布时间】: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