0

我正在尝试在 OpenLDAP 中实施密码策略。

到目前为止,这就是我的 LDIF 的样子:

dn: cn=module{0},cn=config
changeType: modify
add: olcModuleLoad
olcModuleLoad: ppolicy

dn: olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config
objectClass: olcPpolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=ppolicy,dc=ldaptuto,dc=net
olcPPolicyUseLockout: FALSE
olcPPolicyHashCleartext: TRUE

dn: cn=ppolicy,dc=ldaptuto,dc=net
objectClass: device
objectClass: pwdPolicyChecker
objectClass: pwdPolicy
cn: ppolicy
pwdAllowUserChange: TRUE
pwdAttribute: userPassword
pwdMinLength: 10
pwdCheckQuality: 1
pwdInHistory: 5
pwdMustChange: TRUE
pwdMaxAge: 7776000
pwdMaxFailure: 10
pwdLockout: TRUE
pwdLockoutDuration: 1800

我需要确保当用户更改密码时,新密码与旧密码至少有 2 个位置不同。

我在 LDAP wiki 中没有为此找到任何策略设置。我也试过在网上搜索,没有结果。

我想我可以编写自己的密码检查器,像这样,但是,我没有看到在检查过程中使用了旧密码。

如何实施一项策略以确保新密码与 OpenLDAP 中的旧密码至少有 2 个位置不同?

4

1 回答 1

1

你必须

  1. pwdSafeModify: TRUEpwdPolicy条目中设置
  2. 始终使用 Password Modify 扩展操作(参见RFC 3062)更改密码,同时发送旧用户密码(参见 ASN.1 字段oldPasswd

那么你自己的 pwdChecker 模块在处理扩展操作请求时也会收到旧密码。

于 2019-01-04T19:13:41.907 回答