You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 IS 6.1.0对接AWS托管AD创建用户遇密码策略错误问题

WSO2 IS 6.1.0 向AWS托管AD创建用户时提示密码策略错误,但AD直接创建正常

环境信息

  • 操作系统:Windows Server 2016
  • WSO2 Identity Server版本:6.1.0
  • 用户存储:AWS托管目录服务(AWS Managed Directory),通过LDAP 389端口配置为IS二级用户存储
  • 现状:已使用AWS AD管理员账号完成配置,可正常查看AD侧预配置的用户和组

问题现象

  1. 通过IS界面在二级用户存储创建用户时,报错:Please check password policy at DC for user,对应日志:
TID: [-1234] [] [2023-06-22 18:32:23,934] [2e8058e5-4e25-44f1-9290-aae6609ed15e] ERROR {org.wso2.carbon.user.mgt.UserRealmProxy} - Error while enabling the user account. Please check password policy at DC for user : smithJ org.wso2.carbon.user.core.UserStoreException: Error while enabling the user account. Please check password policy at DC for user : smithJ
  1. 直接在AD侧用相同用户名和密码(如Test@12345)创建用户,操作成功
  2. 尝试创建用户并同时添加到组时,用户会在IS和AD中被创建,但状态为禁用且未分配角色

排查与解决方法

1. 检查密码编码与传输配置

AWS托管AD对密码的编码和加密方式有特定要求,修改repository/conf/user-mgt.xml中二级用户存储的配置:

  • 添加密码编码配置:
<Property name="passwordEncoding">UTF-8</Property>
  • 确保密码哈希方法匹配AD支持的类型,例如:
<Property name="passwordHashMethod">SHA</Property>
<Property name="passwordJavaClass">org.wso2.carbon.user.core.util.DefaultPasswordJavaDigest</Property>

2. 对齐用户账号控制属性(UAC)

WSO2默认的用户状态设置可能与AWS AD的默认配置冲突,添加UAC配置确保用户创建后直接启用:

<Property name="UserAccountControl">512</Property>

(注:512对应AD中“正常启用的用户”状态,避免IS先创建禁用用户再启用时触发策略校验)

3. 确认AD连接账号的写权限

确保用于连接AWS AD的管理员账号拥有完整的用户写操作权限,在user-mgt.xml中显式开启写权限:

<Property name="writeUsers">true</Property>
<Property name="writeGroups">true</Property>

4. 匹配AD密码策略的正则验证

AWS托管AD默认密码策略通常要求:至少8字符、包含大小写/数字/特殊字符中的三种、不包含用户名。修改repository/conf/identity/identity.xml中的密码正则:

<Password>
    <Pattern>^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]).{8,}$</Pattern>
</Password>

5. 开启LDAP详细日志定位具体错误

修改repository/conf/log4j2.properties,启用LDAP调试日志:

logger.ldap.name = org.wso2.carbon.user.core.ldap
logger.ldap.level = DEBUG
logger.ldap.additivity = false
logger.ldap.appenderRef.CARBON_CONSOLE.ref = CARBON_CONSOLE
logger.ldap.appenderRef.CARBON_LOGFILE.ref = CARBON_LOGFILE

重新创建用户后,查看日志中的LDAP错误代码(如53类错误可细分密码策略的具体违反项),进一步定位问题。

内容的提问来源于stack exchange,提问作者Kikeman26

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:53:12