使用ApacheDS 2.0.0,配置的相关部分是:
dn: ads-pwdId=default,ou=passwordPolicies,ads-interceptorId=authenticationInterceptor,ou=interceptors,ads-directoryServiceId=default,ou=config
ads-pwdminlength: 5
ads-pwdinhistory: 5
ads-pwdid: default
ads-pwdcheckquality: 1
ads-pwdlockout: TRUE
ads-pwdlockoutduration: 0
ads-pwdvalidator: org.apache.directory.server.core.api.authn.ppolicy.DefaultPasswordValidator
ads-pwdmaxfailure: 5
ads-pwdattribute: userPassword
ads-pwdfailurecountinterval: 30
entryParentId: 0889249e-fc0d-44ec-9df6-af21e46b3dac
ads-enabled: TRUE
objectclass: ads-passwordPolicy
objectclass: ads-base
objectclass: top
entryuuid: 22d39b05-7219-471f-9ca5-a9b12aff7a9e
ads-pwdgraceauthnlimit: 5
modifytimestamp: 20150409194653.529Z
entrycsn: 20150409194653.530000Z#000000#001#000000
ads-pwdexpirewarning: 600
modifiersname: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
然后在Spring-LDAP 3.2.5 / Security中,我使用以下身份验证管理器配置:
<authentication-manager alias="authenticationManager">
<ldap-authentication-provider
user-context-mapper-ref="detailsMapper"
user-dn-pattern="uid={0},ou=people" user-search-filter="(uid={0})"
group-search-base="ou=groups" group-search-filter="member={0}">
<password-compare />
</ldap-authentication-provider>
</authentication-manager>
我可能误解了&#34;密码比较&#34;但当我删除该元素时,LDAP似乎维持了&#34; pwdFailureTime&#34;密码失败。使用&#34;密码比较&#34;丢失的元素,因此多个密码失败不会锁定帐户。
对我在这里失踪的想法有什么想法?
答案 0 :(得分:2)
当您使用password-compare
时,您没有使用他的密码作为用户绑定LDAP,因为LDAP应该被使用,因此LDAP永远不会看到失败的登录尝试。
相反,Spring从用户条目中提取密码,充当LDAP管理员,并比较密码本身。
您不应该使用此选项。这与LDAP设计的意图相反。