Azure AD B2C 自定义流程验证密码但不接受

Azure AD B2C custom flow validates password but does not accept

使用 Azure B2C 自定义策略入门包。使用新的密码正则表达式更新 TrustedFrameworkBase.xml。注册时的密码字段根据配置的正则表达式验证值,但在提交时,密码因“复杂性要求”而被拒绝。是否在自定义策略以外的地方设置了复杂性要求 XML?

关于 Azure 广告密码的复杂性,我们提供三种复杂性选项

简单: 密码 至少8到64个字符。

: 8 到 64 个字符,要求 4 个小写字母、大写字母、数字或符号中的 3 个。

Custom: 它允许你配置自定义长度,它也允许接受只有数字的密码

因为您正在使用自定义策略启动包,并且如您所知,TrustFrameworkBase.xml 是一个可以找到谓词的文件。使用 Predicates 和 PredicateValidationsInput,您可以控制用户在创建帐户时提供的密码的复杂性要求。

因此,您需要做的第一步是通过在密码政策声明中添加 ‘DisableStrongPassword’ 来禁用 B2C 的密码限制。

<PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration, DisableStrongPassword"/>

然后根据您的要求将正则表达式(正则表达式)附加到密码字段。(例如密码的长度..)

参考Configure password complexity requirements - Azure AD B2C | Microsoft Docss