OpenLDAP как добавить политику: Пароль должен отличаться минимум на 2 символа от предыдущего пароля? - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь реализовать политику паролей в 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 для этого. Я также пытался искать в Интернете безрезультатно.

Я подумал, что мог бы написать свою собственную программу проверки паролей, что-то вроде this , однако я не вижу старого пароля, используемого в процессе проверки.

Как я могу реализовать политику, гарантирующую, что новый пароль отличается как минимум на 2 позиции от старого в OpenLDAP?

1 Ответ

0 голосов
/ 04 января 2019

Вы должны

  1. установить pwdSafeModify: TRUE в pwdPolicy запись
  2. всегда изменять пароль с помощью расширенной операции изменения пароля (см. RFC 3062) также отправляет старый пароль пользователя (см. Поле ASN.1 oldPasswd )

Тогда ваш собственный модуль pwdChecker также получает старый пароль при обработке запроса расширенной операции.

...