首页 文章

Azure AD B2C与企业(Azure?)AD帐户集成

提问于
浏览
7

我们希望将Azure AD B2C用于我们的Web应用程序,以允许用户使用'local'帐户/密码登录或使用他们的社交帐户(Facebook等) . https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-overview

但是,在此应用程序中,我们可能会定位组织,因此我们还希望与公司现有的Azure AD公司帐户集成 . 这样,用户无需创建新帐户即可使用其现有的公司帐户 .

事实证明,Azure AD B2C中有一个(新)功能,允许您使用此处所述的自定义策略显式链接到外部Azure AD帐户:https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom

不幸的是,这只有在我们事先知道我们需要链接哪些外部公司并添加特定配置时才有效 . 它还泄漏有关谁正在使用该应用程序的信息,因为公司名称在登录页面上列为选项 .

我也看过Azure AD B2B功能,但我认为这也不合适 .

我们真正喜欢的是Azure AD B2C为(公司)Microsoft帐户提供通用登录,该帐户检测该电子邮件地址是否已在任何Azure AD系统中处理;如果是,则它将身份验证委派给该系统,但如果不是,则它将回退到Azure AD B2C本地帐户 .

此通用登录已用于访问标准Microsoft应用程序,例如其门户 . 有没有人知道这是否可以在Azure AD B2C中实现,或者是否有可能的时间范围?是否有任何替代系统可以提供类似的功能?

2 回答

  • 1

    Azure AD B2C不正式支持多租户Azure AD身份提供程序 . 您应该为功能here投票,以便它可以帮助确定优先级,以便在功能处于预览状态时联系您 .

    如果您使用的Azure AD租户数量有限,则可能存在解决方法 . 您可以在应用中构建一个用户输入电子邮件地址的页面 . 根据电子邮件地址,您可以在调用Azure AD B2C时使用domain_hint参数将其直接重定向到正确的登录页面 .

  • 3

    What you are referring to is having Azure AD in multi-tenant mode, added as an identity provider to Azure AD B2C.

    来自:Multi-Tenant Azure AD Auth in Azure AD B2C with Custom Policies

    为了支持多租户Azure AD,您需要在自定义策略中使用不同的值配置ClaimsProvider .

    使用以下值,确保替换为client_id和IdTokenAudience .

    <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
    <Item Key="ValidTokenIssuerPrefixes">https://sts.windows.net/</Item>
    <Item Key="authorization_endpoint">https://login.microsoftonline.com/common/oauth2/authorize</Item>
    <Item Key="client_id">df5b2515-a8d2-4d91-ab4f-eac6e1e416c2</Item>
    <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>
    <Item Key="scope">openid</Item>
    <Item Key="UsePolicyInRedirectUri">false</Item>
    <Item Key="HttpBinding">POST</Item>
    <Item Key="response_types">id_token</Item>
    <Item Key="IdTokenAudience">df5b2515-a8d2-4d91-ab4f-eac6e1e416c2</Item>
    

    CAUTION: 此功能尚未正式预览,因此请谨慎使用 . 继续监控官方"Sign in by using Azure AD accounts"文档,以了解何时完整记录和支持 .

    EDIT: 确保在App 's settings, otherwise you' ll中翻转 Multi-tenanted 开关,会出现以下错误:

    AADSTS70001:在目录(我们公司的主域)中找不到带有标识符'(guid)'的应用程序

相关问题