我们使用自定义Identity Experience Framework策略通过Azure AD B2C保护Web应用程序,以允许用户注册和使用社交身份(Microsoft,Google,Facebook)或使用其他联合Azure AD实例的身份进行登录,或者与当地的'电子邮件/密码帐户。
所有社交帐户和Federated AD都能正常运行。注册并使用电子邮件/密码登录正常,但我们现在遇到错误。我们还没有明确地对我们的电子邮件/密码配置进行任何更改,因为这是最后一次有效的,所以我们不确定这是如何发生的。
问题是:使用新的电子邮件地址注册正常,并且在该过程完成后,用户已正确登录,并且他们的帐户将显示在目录中。但是,如果用户退出,则再次重新登录的任何尝试都将失败:
(显示的电子邮件地址不是实际的。多个用户使用新旧电子邮件/密码组合重复出现错误。)
深入了解门户网站,潜在的错误显示为:
70001在名为Y的租户中找不到名为X的应用程序。如果租户的管理员尚未安装该应用程序或租户中的任何用户同意该应用程序,则会发生这种情况。您可能已将您的身份验证请求发送给错误的租户。
此错误有时与未能向门户网站中的应用程序授予权限相关。我们已尝试删除并恢复所有权限,并重新授予权限。这还没有解决问题。
是否有人知道可能导致此问题的原因,特别是为什么注册/登录正常工作,但返回登录不会?
更新
只是为了确认我们在AD目录中配置了IEF和Proxy IEF应用程序:
我们在TrustFrameworkExtensions.xml中配置了login-NonInteractive
技术配置文件:
连接了应用程序洞察(按照这些说明https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-troubleshoot-custom),我们能够得到更详细的错误:
AADSTS70001:带标识符的应用程序 ' ProxyIdentityExperienceFrameworkAppID'在目录中找不到 weapageengine.onmicrosoft.com
唯一的地方' ProxyIdentityExperienceFrameworkAppID'出现在我们的任何自定义政策中的信息显示在上面的XML剪辑中,但根据此处的文档,这似乎是正确的:https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack/blob/3b4898fec3bf0014b320beffa6eb52ad68eb6111/SocialAndLocalAccounts/TrustFrameworkExtensions.xml#L38 - 除非我们要更新那些' DefaultValue'属性也是?
解决: 根据下面的答案,有必要使用相关的应用程序ID更新元数据和默认值。值得注意的是,在GitHub示例https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack/blob/3b4898fec3bf0014b320beffa6eb52ad68eb6111/SocialAndLocalAccounts/TrustFrameworkExtensions.xml#L38中,样板值的设置不同,导致我们在替换中丢失了一个:
答案 0 :(得分:2)
本地帐户登录根据Azure AD B2C目录对最终用户进行身份验证,然后从中读取用户对象。
本地帐户注册和社交帐户登录不会针对Azure AD B2C目录对最终用户进行身份验证。本地帐户注册将用户对象写入其中。社交帐户登录将身份验证委派给社交身份提供程序,然后在用户对象不存在时将用户对象写入Azure AD B2C目录,或者如果用户对象确实存在则从Azure AD B2C目录中读取用户对象
要通过针对Azure AD B2C目录的本地帐户登录启用最终用户身份验证,您必须add the Identity Experience Framework applications to the Azure AD B2C directory,然后configure these IEF applications with the login-NonInteractive technical profile。
本地帐户注册和社交帐户登录不需要这些应用程序。