Azure广告B2C-使用电子邮件或手机注册/登录

Azure广告B2C-使用电子邮件或手机注册/登录,azure,azure-ad-b2c,Azure,Azure Ad B2c,我正在使用Azure AD B2C,我们的产品团队向我们提出了一个偏好/要求,允许用户使用电子邮件地址或移动电话号码作为用户id注册/登录 目前,内置流只允许电子邮件或用户名作为用户id。有人建议,我们可以创建一个自定义策略来允许移动电话号码,但我需要的是能够使用电子邮件地址或移动电话号码注册/登录 似乎我不是唯一一个请求此功能的人 只是想知道是否有一种方法可以使用自定义策略来实现这一点,如果是的话;任何演示/链接,解释如何做到这一点 [编辑] 用户旅程 Web应用注册: 用户输入电子邮件或手机

我正在使用Azure AD B2C,我们的产品团队向我们提出了一个偏好/要求,允许用户使用电子邮件地址或移动电话号码作为用户id注册/登录

目前,内置流只允许电子邮件或用户名作为用户id。有人建议,我们可以创建一个自定义策略来允许移动电话号码,但我需要的是能够使用电子邮件地址或移动电话号码注册/登录

似乎我不是唯一一个请求此功能的人

只是想知道是否有一种方法可以使用自定义策略来实现这一点,如果是的话;任何演示/链接,解释如何做到这一点

[编辑] 用户旅程

Web应用注册:

  • 用户输入电子邮件或手机
  • MFA至电子邮件或手机(以输入者为准)
  • 验证发送给用户的代码
  • 设置密码
  • IDP完成
  • 回到应用程序中,可能会捕获电子邮件或手机(IDP中未捕获的内容),并通过MS Graph API更新B2C
  • 本机移动应用程序注册:

  • 用户进入手机
  • MFA到mobile
  • 验证码
  • 设置密码
  • IDP完成
  • 回到应用程序中,可能会捕获电子邮件并通过MS Graph API更新B2C
  • Web应用程序登录:

    • 使用(手机或电子邮件)和密码登录
    本机移动应用程序注册:

    • 使用手机和密码登录
    • 大部分时间使用刷新令牌,而不是显式登录

    您可以通过两个自定义策略来实现这一点:

  • 一种注册或登录策略,允许使用电话号码注册本地帐户,并使用电子邮件地址或电话号码登录本地帐户
  • 一种链接策略,允许将电子邮件地址链接到已使用电话号码注册的本地帐户
  • 我已将以下自定义策略示例发布到:

    • 使用电话号码注册本地帐户。系统将提示最终用户验证电话号码。可以使用策略将电子邮件地址链接到本地帐户使用电子邮件地址或电话号码登录本地帐户。如果尚未验证电子邮件地址,则会提示最终用户验证电子邮件地址。如果尚未验证电话号码,则会提示最终用户验证电话号码
    • 将电子邮件地址链接到已使用电话号码注册的本地帐户。系统将提示最终用户验证电子邮件地址

    您能否更新问题以澄清以下问题:您是否需要带密码的电话号码(类似于电子邮件)?默认情况下,可以在注册/登录页面上显示电子邮件登录,并且有一个按钮(类似于社交IDP)显示“使用手机登录”等吗?谢谢Omer。我已经用请求的用户旅程更新了初始问题。Hi@Ryan.Bartsch我可能可以帮助您了解一个示例策略。但首先,你也可以考虑另一种流程,允许新用户输入电子邮件和电话,但是他们只在注册时验证一个,然后在签名之后使用另一个登录名来验证另一个签名吗?这就简化了它,因为两个登录名都是在注册时捕获的,两个都可以独立地验证。@ChrisPadgett-感谢您的回复。我与该业务/产品进行了交谈,他们对用户体验进行了如下改进。注册仅限移动(+2FA)和所有频道的密码。电子邮件可以稍后通过后台通道(如MS Graph API)进行设置并独立验证。登录是(手机或电子邮件)和密码。显然,如果没有分配电子邮件,用户只能使用手机登录。如果您有一些类似的示例策略,将不胜感激:)Hi@Ryan.Bartsch我添加了以下答案,并提供了自定义策略示例的链接。谢谢@chrispadget,这是一个很大的帮助-非常感谢!只是浏览一下说明/自述文件,还不完全清楚什么样的iefExtensionApplication.id和iefExtensionApplication.clientId应该设置为default.json。我假设这是B2C应用程序Id。请确认。。。也可能值得为其他人更新自述文件…Hi@Ryan.Bartsch iefExtensionApplication.id和iefExtensionApplication.clientId分别指在b2c租户中注册的b2c扩展应用程序的对象标识符和应用程序标识符。我将为其他人更新自述文件。嗨,克里斯,我通过这个链接使事情正常进行:。仍然值得更新文档tho:)谢谢你的帮助Chris,我已经将此标记为答案。我仍然需要做的几件事包括:;a) 将其拆分为单独的注册和登录流程,b)在输入手机2FA代码后使用验证代码按钮(类似于电子邮件链接流程),c)接受带/不带国家代码的手机格式(即+61),以及d)自定义样式;我自己做这些事情应该很好,但如果遇到任何困难,我会告诉你的。再次感谢你的帮助!没问题,我很乐意根据需要改进策略示例,但最好通过GitHub存储库上的问题来管理这些项目。