我有一个应用程序连接到托管外部客户的 Azure B2C 租户,并且该 B2C 租户将 Azure AD 作为身份提供商。
用户会看到 B2C 登录页面和一个按钮,允许内部用户使用现有的 Azure AD 登录,因此用户的主要存储库是 B2C 租户。
我想把它反过来。使用 Azure AD 对应用程序进行身份验证并将 B2C 租户添加为身份提供商,以便外部用户可以登录系统。
我需要这个,因为我们面临着很多 B2C 问题,包括 MFA 注册和我的客户不满意的其他一些奇怪行为。
到目前为止我做了什么:
创建企业应用,获取元数据URL 在 Azure AD 中打开外部身份,并尝试添加新的新 SAML/WS-Fed IdP,指定我的 B2C 租户的名称、域,并选择从我从 B2C 租户上的企业应用程序下载的元数据文件进行解析
当我点击保存时,出现以下错误
b2cdemotraining.onmicrosoft.com 域名无效。域应与 PassiveSignInUri 匹配。否则,请在域 DNS TXT 记录中添加 PassiveSignInUri,如下所示 DirectFedAuthUrl=https://login.microsoftonline.com/[我的租户 id]/saml2。
B2C 租户没有自定义域名,我不知道如何解决此错误!!
我实际上可以使用 B2C 作为 Azure AD 的身份提供商吗?或者不支持这个?
在 B2C 中创建企业应用程序并尝试在 Azure AD 中创建身份提供商
注意:使用 B2B,您可以将 Google/Facebook 配置为身份提供商,但不能将 B2C 配置为身份提供商,因为 Azure AD 不支持将 B2C 作为 IdP。参考这个MsDoc
添加 B2C 作为 IdP 就像多租户场景。 作为解决方法,如果您想使用 Azure AD 应用程序对 Azure AD B2C 用户进行身份验证,则创建一个多租户 Azure AD 应用程序。
对于示例,我使用以下端点来验证 B2C 用户:
https://login.microsoftonline.com/organizations/oauth2/authorize?
&client_id=ClientID
&response_type=code
&redirect_uri=https://jwt.ms
&response_mode=query
&scope=user.read
&state=12345
用户认证成功:
有关在 Azure AD B2C 中将 Azure AD 配置为外部身份,请参阅为 Microsoft Entra 组织设置登录 - Azure AD B2C