Назад | Перейти на главную страницу

Включить политику паролей в OpenLDAP 2.4.44

Я пытаюсь включить политики паролей пользователей в моем экземпляре OpenLDAP 2.4.44 на основе osixia / docker-openldap Образ Docker.

В основном, следуя это описание, Я установил следующую структуру в моем экземпляре OpenLDAP:

ldapsearch -h localhost -p 1389 -D "cn=admin,dc=mycompany,dc=io" -w mypassword -b "dc=mycompany,dc=io" -s sub "(objectclass=*)"

# mycompany.io
dn: dc=mycompany,dc=io
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Inc.
dc: mycompany

# admin, mycompany.io
dn: cn=admin,dc=mycompany,dc=io
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: hashhashhash

# my-group, mycompany.io
dn: ou=my-group,dc=mycompany,dc=io
objectClass: organizationalUnit
objectClass: extensibleObject
objectClass: top
ou: my-group

# policies, mycompany.io
dn: ou=policies,dc=mycompany,dc=io
objectClass: organizationalUnit
objectClass: extensibleObject
objectClass: top
ou: policies

# passwordDefault, policies, mycompany.io
dn: cn=passwordDefault,ou=policies,dc=mycompany,dc=io
objectClass: pwdPolicy
objectClass: person
objectClass: top
cn: passwordDefault
sn: passwordDefault
pwdAttribute: 2.5.4.35
pwdAllowUserChange: TRUE
pwdCheckQuality: 2
pwdExpireWarning: 600
pwdFailureCountInterval: 30
pwdGraceAuthNLimit: 5
pwdLockout: TRUE
pwdLockoutDuration: 0
pwdMaxAge: 0
pwdMaxFailure: 10
pwdMaxRecordedFailure: 10
pwdMinAge: 0
pwdMinLength: 8
pwdMustChange: FALSE
pwdSafeModify: FALSE
pwdInHistory: 2

# test-admin, my-group, mycompany.io
dn: uid=test-admin,ou=my-group,dc=mycompany,dc=io
uid: test-admin
userPassword:: hashhashhash
objectClass: account
objectClass: simpleSecurityObject
objectClass: top

# test-user-1, my-group, mycompany.io
dn: uid=test-user-1,ou=my-group,dc=mycompany,dc=io
uid: test-user-1
userPassword:: hashhashhash
objectClass: account
objectClass: simpleSecurityObject
objectClass: top

# test-user-2, my-group, mycompany.io
dn: uid=test-user-2,ou=my-group,dc=mycompany,dc=io
uid: test-user-2
objectClass: account
objectClass: simpleSecurityObject
objectClass: top
userPassword:: hashhashhash

# search result
search: 2
result: 0 Success

# numResponses: 9
# numEntries: 8

Итак, согласно политике, я ожидаю, что мой test-user-2 не сможет использовать один и тот же пароль дважды (pwdInHistory: 2).

Итак, я пытаюсь проверить, что:

ldappasswd -h localhost -p 1389 -D "uid=test-user-2,ou=my-group,dc=mycompany,dc=io" -W -A -S

Но, к сожалению, я могу повторно использовать старые test-user-2 пароли сколько угодно раз. Итак, политика паролей, к сожалению, не работает.

Кто-нибудь может заметить ошибку в моей конфигурации?

Как я могу проверить, применяется ли политика паролей?

Как я могу проверить в OpenLDAP, что политика паролей включена и активна?

В моей настройке было 2 проблемы.

  1. В схеме pwdPolicy нет атрибута sn. Итак, чтобы создать политику, ее нужно удалить из файла ldif

  2. В моем экземпляре OpenLDAP был активен cn = config, но модуль политики паролей не был активирован. Следующий файл LDIF необходимо было загрузить с помощью следующей команды командной строки

активировать-ppolicy.ldif

dn: cn=module,cn=config
cn: module{0}
objectClass: top
objectClass: olcModuleList
olcModuleLoad: ppolicy.la
olcModulePath: /usr/lib/ldap

dn: olcOverlay={0}ppolicy,olcDatabase={1}hdb,cn=config
objectClass: olcPPolicyConfig
objectClass: olcOverlayConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=passwordDefault,ou=policies,dc=mycompany,dc=io
olcPPolicyForwardUpdates: FALSE
olcPPolicyHashCleartext: TRUE
olcPPolicyUseLockout: FALSE

Команда для загрузки

ldapmodify -h localhost -p 1389 -D "cn=admin,cn=config" -w config -a -f ./activate-ppolicy.ldif

Обратите внимание на особые cn=admin,cn-config имя пользователя (отличается от основной учетной записи администратора root cn=admin,dc=mycompany,dc=io) с паролем по умолчанию "config".