我司 SSO 服务是一个 PHP 应用,为了能更好的适配更多应用,在 SSO 服务里添加了自动向 Active Directory 服务器使用 LDAP 协议同步用户的功能。但最近发现有一些用户始终无法同步创建成功,而有些则可以。
经过排查、添加日志,发现 AD 服务器返回了 "Server is unwilling to perform" 的错误信息:
这种信息要么是执行同步的 AD 账号权限不够,要么是其它原因。但有能成功同步的例子在前,所以同步账号的权限是没有问题的。经过搜索,找到了这条回答:serverfault.com/a/771263
它的意思是要同步的用户密码不符合 AD 服务器上的密码策略,所以服务器不执行。那要么让用户修改密码,要么改密码策略。这里我选择了修改密码策略。在控制面板的“管理工具”里,打开“组策略管理”:
编辑 Default Domain Plicy,把密码策略里的限制都去掉:
再同步用户就可以了。