【问题标题】:Hybrid authentication scenario - Azure AD B2C and Azure AD混合身份验证方案 - Azure AD B2C 和 Azure AD
【发布时间】:2016-10-03 14:45:45
【问题描述】:

我有这种情况,我们必须通过 Azure AD 对企业用户进行身份验证,但通过 Azure AD B2C 对外部用户进行身份验证——所有这些都来自同一个登录屏幕。

有一些 Web 应用程序将共享此功能。应用程序来自各种技术堆栈,从 .Net 到 Java-Spring + Angular 2。

您推荐的方法是什么? 抱歉,如果已经提出并回答了这个问题,但在这方面找不到太多指导。 MSAL 库会解决这个问题吗?此外,还没有任何适用于 Java 的 MSAL 实现。 Azure AD B2C Premium 是否支持此功能?

提前感谢您的帮助!

【问题讨论】:

    标签: azure-ad-b2c


    【解决方案1】:

    目前,您唯一的选择是在您的应用程序中独立实现对 Azure AD 和 Azure AD B2C 的支持。您必须要求用户在两个身份提供者之间进行选择,然后调用正确的那个。

    计划在 Azure AD B2C 中添加对 Azure AD 组织用户作为身份提供者的支持,此时不需要进行两次集成。然而,这种能力还不是在不久的将来。

    我整理了一些关于如何在 .NET 应用程序中同时支持两者的指导,也许这会让你走上正轨:https://github.com/dstrockis/AAD-B2C-Hybrid

    【讨论】:

    • 这似乎对我不起作用...这是基于标准的 azure 广告样本之一吗?
    • 已克隆、重新配置,但无法使其正常工作...除了 ida:Tenant 和 ida:ClientId 之外的任何内容都需要更改(假设我已经设置了相关的 b2c 策略)?
    • 目前预览中似乎有一种方法可以通过自定义策略执行此操作。我还没有测试,但看起来很有希望。 docs.microsoft.com/en-us/azure/active-directory-b2c/…
    【解决方案2】:

    要将 Azure AD 用于企业用户登录,将 Azure B2C 用于外部用户,您需要配置以下内容

    第 1 步 - 配置身份提供程序 如果您使用身份体验框架政策

    • 使用 OpenIdConnect 协议为企业用户身份验证创建 Azure AD 声明提供程序
    • 使用 login-NonInteractive TechnicalProfile 为外部用户身份验证创建 Azure AD B2C 声明提供程序
    • <ClaimsProviderSelections>下添加上面两个<UserJourneys> --> <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signupsignin">

    例子:

          <ClaimsProviderSelections>
            <ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
            <ClaimsProviderSelection TargetClaimsExchangeId="AADExchange" />
          </ClaimsProviderSelections>
          <ClaimsExchanges>
            <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
          </ClaimsExchanges>
        </OrchestrationStep>
    

    如果您使用的是用户流,那么您需要配置以下内容

    • 在 Azure AD B2C 的身份提供程序中将 Azure AD 注册为新的OpenID Connect provider
    • 在用户流策略中,选择本地帐户下的 Email Signin 进行外部用户身份验证
    • 在用户流策略中,为企业用户身份验证选择新创建的OpenID Connect provider

    第 2 步 - 创建应用注册

    第 3 步 - 将在应用注册中创建的应用的重定向 URI 配置到您的应用 URL 的

    第 4 步 - 测试策略时,您将看到 2 个选项,用于外部用户身份验证的用户名和密码,其中用户使用在 Azure AD B2C 中为其配置的用户名和密码第二个选项是登录页面底部的链接,用于使用 Azure AD 登录。当用户单击此链接时,他们将被带到 Azure AD 登录页面进行身份验证。

    更详细的配置步骤请参考以下链接

    https://docs.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-single-tenant-custom?tabs=app-reg-ga

    【讨论】:

      【解决方案3】:

      如果您向许多组织提供软件即服务 (SaaS) 应用程序,则可以将应用程序配置为接受来自任何 Azure Active Directory (Azure AD) 租户的登录。此配置称为使您的应用程序多租户。任何 Azure AD 租户中的用户在同意将其帐户用于您的应用程序后,都可以登录您的应用程序。

      https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-convert-app-to-be-multi-tenant

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-25
        • 1970-01-01
        • 2020-08-26
        • 1970-01-01
        • 2016-05-06
        • 1970-01-01
        • 2016-09-08
        • 1970-01-01
        相关资源
        最近更新 更多