首页 > 解决方案 > 让用户在使用社交登录登录后为本地帐户添加密码 - Azure AD b2c

问题描述

我有一个使用 Azure b2c 对用户进行身份验证的 Web 应用程序。我想要以下用户体验:

  1. 用户尝试访问登录后的页面
  2. 用户被重定向到 azure b2c,并且可以选择使用 facebook 或电子邮件+密码登录
  3. 如果用户是新用户,他们将只能使用 facebook 登录
  4. 使用 facebook 登录后,用户还应该创建一个密码,他们可以在未来使用,而不是 facebook
  5. 如果用户拒绝创建密码,我们需要记住这一点(在 cookie 中?)并且以后不再向用户提供此选项
  6. 不知何故,如果用户改变主意,我们需要能够在稍后的时间点再次触发创建密码的选项

实现这种流程的最佳方法是什么?可以使用自定义策略在 azure b2c 中构建吗?还是太复杂了?

标签: openid-connectazure-ad-b2c

解决方案


目标

我怀疑这是你的目标:

  • 让用户处于控制之中,这样登录可用性很好,并且可以使用熟悉的凭据

  • 通过后端的稳定用户 ID 识别用户,无论他们使用哪种登录方法,以便您可以随着时间的推移跟踪他们的数据

一个很好的问题是为什么你需要用户有一个默认密码?

登录后行为

我可能会在登录后提示用户“完成他们的个人资料”以启用上述功能。此行为与 OAuth 无关,属于您的应用程序:

  • 如果您还没有电子邮件,请提示您发送电子邮件
  • 如果电子邮件不存在,请在您自己的数据库中创建用户行

联合登录

Azure AD 具有可以启用此功能的功能。所以通过Facebook登录应该没问题。

用户自行注册

Azure AD 也将支持这一点(我认为)。因此,用户可以按照提示创建自己的帐户——如果这对您的业务有意义的话。


推荐阅读