首页 > 解决方案 > 使用自定义身份提供商注册的用户缺少用户名

问题描述

最近几个月,我们设法将现有的 Identity Server 3 与 AAD B2C 集成。它当然按照此说明注册为自定义身份提供者. 就身份验证本身而言,一切正常。我们现有数据库(位于 Identity Server 3 后面)中的所有用户都可以毫无问题地使用 AAD B2C 登录。正如您可以猜到的那样,一旦他们第一次登录,他们也将成为 Azure Active Directory(B2C 租户)用户。但是,我们最近还注意到,在我们的 AAD B2C 租户的用户列表中,没有一个具有正确的用户名和源值(见图)。有谁知道我们在 Identity Server 或 Azure AD B2C 端(或两者)可能缺少什么,以及不填充这些值的可能原因是什么?

在此处输入图像描述

标签: azure-active-directoryazure-ad-b2cidentityserver3

解决方案


在 Azure AD B2C 目录中创建外部身份的用户对象(例如 IdentityServer 管理的身份)时,它的创建方式如下:

{
    "accountEnabled": false,
    "creationType": null,
    ...
    "userIdentities": [
        {
            "issuer": "...",
            "issuerUserId": "..."
        }
    ]
}

其中UserIdentity对象设置如下:

  • issuer属性设置为发布用户标识符的外部身份提供者的字符串表示形式,例如https://myidentityserver3.azurewebsites.net/identity.
  • issuerUserId属性设置为由外部身份提供者颁发的用户标识符的 Base64 表示。

在 Azure AD B2C 门户中打开“所有用户”菜单时,这些外部用户将在“用户名”列中列出,并在“”列中显示“未知” 。


推荐阅读