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

Detect social account existence flow using custom policies on Azure AD B2C

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

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

我调查了这是否真的可以完成,我发现了一个“用于视觉协作的数字工作空间”(a.k.a Mural.co),它实际上实现了类似的流程,所以这必须是可能的。见下图。

但是,我找不到关于

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

任何正确方向的指示将不胜感激

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

  2. 参考我们的samples and wiki

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

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

  1. 请求电子邮件
  2. 读取目录以查看是否存在电子邮件
  3. 如果存在电子邮件,请将用户发送到他们用于注册的 IdP。您可以通过查看在 userIdentity 对象上注册的“发行者”来做到这一点,
  4. 如果电子邮件不存在,将用户发送到组合的登录和注册页面(技术资料),他们可以在其中使用社交登录或使用本地帐户注册。使用 CSS.
  5. 隐藏登录元素