对于Azure B2C,有没有办法通过声明发送用户主体名称?

Zam*_*i77 7 c# azure azure-ad-b2c blazor

我在将当前登录用户的用户名从 Azure b2c 获取到我的 Blazor Web 应用程序时遇到一些问题。本质上,我想创建一个用户名帐户,其中用户名是用户主体名称。我最初使用的是电子邮件注册策略,其中显示名称作为用户名。然而,b2c 并不强制显示名称是唯一的,因此存在一个固有的问题。没有返回带有用户名的声明,因此我无法在 Blazor 应用程序中密切关注登录者或显示他们的用户名。我可以做一些选择,我很好奇哪一个最容易实现/如何实现它,因为过去几个小时我一直在为此抓狂。

  • 在创建 B2C 帐户时,采用用户主体名称并将其设为显示名称
  • 通过声明发送用户主体名称(不知道如何执行此操作)
  • 电子邮件是否使用显示名称进行注册,但以某种方式强制执行 B2C 以确保显示名称是唯一的
  • 为 B2C 用户提供唯一显示名称的其他方法

提前致谢!

Jas*_*SFT 5

您需要使用自定义策略: https: //aka.ms/ief。用户名不会在用户流的令牌中返回。

使用自定义策略,您可以使用用户名注册用户,并将其用户名(signInNames.username 属性,在 Azure 门户中显示为 userPrincipalName)返回到令牌中。

您可以使用我的工具在这里快速部署自定义策略。并使用此页面示例文件夹名称 快速部署用户名示例username-signup-or-signin