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中实现,或者是否有可能的时间范围?
是否有任何替代系统可以提供类似的功能?
解决方法
来自: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”文档,以了解何时完整记录和支持.
编辑:确保您在应用程序的设置中翻转多租户开关,否则您将收到以下错误:
AADSTS70001: Application with identifier ‘(guid)’ was not found in the directory (our company’s primary domain)