使用Azure AD B2C上的自定义策略检测社交帐户的存在流

时间:2020-10-23 07:54:17

标签: azure-ad-b2c azure-ad-b2c-custom-policy

我正在努力了解如何为以下流程实施自定义策略:

User lands on the login page and that login page only contains an email input.
User enters email address and clicks continue
    if user has already registered
        Redirected to their selected login provider (Google, Microsoft Account or Local Account)
    if user has not registered before
        Check google provider if a user account exists for that email address
        if Google account exists
            Redirect to Google login
        Check Microsoft provider if a user account exists for that email address
        if Microsoft account exists
            Redirect to Microsoft login
        else
            Redirect to registration screen
            User completes registration screen
            User is automatically logged in
            
The user

我已经调查了这是否真的可以实现,并且发现了一个“视觉协作的数字工作区”(又称Mural.co),它实际上实现了类似的流程,因此必须有可能。请参见下面的图片。

Landing page

Microsoft social account detected page

但是,我找不到有关的信息

  1. 如何查询社交提供商的帐户是否存在
  2. 如何在Azure AD B2C自定义策略中创建这种复杂类型的流。

任何朝着正确方向的指针将不胜感激

1 个答案:

答案 0 :(得分:2)

  1. 不可能。没有人会允许您调查电子邮件的社交IdP。数据保护等。

  2. 参考我们的sampleswiki

您的注册将来自我们的默认注册过程。

您的登录流程可能是这样的:

  1. 请求电子邮件
  2. 阅读目录以查看是否存在电子邮件
  3. 如果存在电子邮件,请将用户发送到他们用来注册的IDP。您可以通过查看userIdentity对象上注册的“发布者”来完成此操作,
  4. 如果不存在电子邮件,则将用户转到组合的登录和注册页面(技术资料),在此他们可以进行社交登录或使用本地帐户进行登录。使用CSS隐藏登录元素。