4

我们有一个使用自定义身份体验框架策略通过 Azure AD B2C 保护的 Web 应用程序,以允许用户使用社交身份(Microsoft、Google、Facebook)或来自另一个联合 Azure AD 实例的身份或使用“本地' 电子邮件/密码帐户。

所有社交帐户和联合广告都正常工作。使用电子邮件/密码注册和登录正常工作,但我们现在遇到错误。自从最后一次知道这是有效的以来,我们没有故意对我们的电子邮件/密码配置进行任何更改,因此我们不确定这是如何发生的。

问题是:使用新的电子邮件地址注册可以正常工作,并且在该过程完成后,用户正确登录,并且他们的帐户出现在目录中。但是,如果用户注销,则任何重新登录的尝试都会失败:在此处输入图像描述

(显示的电子邮件地址不是实际的。多个用户使用新旧电子邮件/密码组合重复错误。)

深入研究门户,潜在的错误显示为:

70001 在名为 Y 的租户中未找到名为 X 的应用程序。如果租户管理员未安装该应用程序或租户中的任何用户未同意该应用程序,则可能会发生这种情况。您可能已将身份验证请求发送给错误的租户。

此错误有时似乎与未能向门户中的应用程序授予权限有关。我们已尝试删除和恢复所有权限,并重新授予权限。这并没有解决问题。

有谁知道可能导致此问题的原因,特别是为什么注册/登录可以正常工作,但返回登录却不能?

更新:

只是为了确认我们在 AD 目录中配置了 IEF 和代理 IEF 应用程序: 在此处输入图像描述

我们login-NonInteractive在 TrustFrameworkExtensions.xml 中配置了技术配置文件: 在此处输入图像描述

连接 Application Insights(按照这些说明https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-troubleshoot-custom),我们能够做到这一点更详细的错误:

AADSTS70001:在 weapageengine.onmicrosoft.com 目录中找不到标识符为“ProxyIdentityExperienceFrameworkAppID”的应用程序

'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中,样板值的大小写不同,领先对于我们在替换中缺少的一个:

在此处输入图像描述

4

1 回答 1

3

本地帐户登录根据 Azure AD B2C 目录对最终用户进行身份验证,然后从中读取用户对象。

本地帐户注册和社交帐户登录不会针对 Azure AD B2C 目录对最终用户进行身份验证。本地帐户注册会将用户对象写入其中。社交帐户登录将身份验证委托给社交身份提供者,然后如果用户对象不存在,则将用户对象写入 Azure AD B2C 目录;如果用户对象存在,则从 Azure AD B2C 目录中读取用户对象.

若要通过本地帐户登录对 Azure AD B2C 目录启用最终用户身份验证,必须将 Identity Experience Framework 应用程序添加到 Azure AD B2C 目录,然后使用login-NonInteractive技术配置文件配置这些 IEF 应用程序

本地帐户注册和社交帐户登录不需要这些应用程序。

于 2018-04-07T00:33:31.427 回答