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

时间:2017-08-04 14:09:44

标签: azure azure-active-directory azure-ad-b2c azure-ad-b2b

我们希望将Azure AD B2C用于我们的网络应用程序,以允许用户使用“本地”帐户/密码登录或使用他们的社交帐户(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 个答案:

答案 0 :(得分:3)

您所指的是在multi-tenant mode中使用Azure AD,并作为身份提供商添加到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>

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

编辑:确保在应用程序的设置中翻转Multi-tenanted开关,否则您将收到以下错误:

  

AADSTS70001:带标识符的应用程序&#39;(guid)&#39;在目录(我们公司的主要域名)中找不到

答案 1 :(得分:1)

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

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