Я использую openldap slapd 2.4.40 и postgresql9.2.23 в качестве back-sql на CentoS 6.9.
пользователь и пароль для LDAP uid
и userPassword
хранятся в postgresql в кодировке DES.
Исходный открытый текст: JacicFk5
Закодированный/зашифрованный DES текст IfjFxsltK/MPE
хранится в БД.
Я вижу информацию о пользователе в результате ldapseach по сохраненному паролю.
ldapsearch -x -b "dc=example,dc=com" -D uid="HDZZZ0R0N,ou=people,dc=example,dc=com" -w IfjFxsltK/MPE '(&(uid= HDZZZ0R0N)(objectClass=*))'
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (&(uid= HDZZZ0R0N)(objectClass=*))
# requesting: ALL
#
# user01, people, example.com
dn: uid= HDZZZ0R0N,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
cn:: W+aOkl3lia/nlKPnianjg6Hjg7Pjg4bjg4rjg7PjgrnvvIgzNu+8iVNURw==
sn:: W+aOkl3lia/nlKPnianjg6Hjg7Pjg4bjg4rjg7PjgrnvvIgzNu+8iVNURw==
uid: HDZZZ0R0N
userPassword:: SWZqRnhzbHRLL01QRQ==
Однако я не могу выполнить ldapsearch по исходному текстовому паролю.
ldapsearch -x -b "dc=example,dc=com" -D uid="HDZZZ0R0N,ou=people,dc=example,dc=com" -w JacicFk5 '(&(uid= HDZZZ0R0N)(objectClass=*))'
ldap_bind: Invalid credentials (49)
Кто-нибудь скажет мне, как заставить ldapsearch разрешать данный пароль открытым текстом и сохраненным паролем с помощью кодировки DES?
Я хотел бы знать, как преобразовать открытый текст JacicFk5
из командной строки ldapseach в хэш IfjFxsltK/MPE
и сопоставить его с IfjFxsltK/MPE
в БД как userPassowrd
.
Есть ли подходящая директива для ldap.conf
или slapd.conf
?
Я проверил следующее.
echo "SWZqRnhzbHRLL01QRQ==" |perl -MMIME::Base64 -ne 'print decode_base64($_) . "\n"'
он возвращает IfjFxsltK/MPE
perl -e 'print("userPassword: {crypt}".crypt("JacicFk5","If")."\n");'
он возвращает userPassword: {crypt}IfjFxsltK/MPE
Еще одна информация. мой ldapseach может решить текст пароля для пользователей, хранящихся на сервере AD, через ownclod.
ppolicy
не включен, если переключатель не включен.-enable-ppolicy Password Policy overlay no|yes|mod [no]
Мой пакет для CentOS. Я не могу измениться. - person user1345414   schedule 14.09.2018http://man7.org/linux/man-pages/man3/crypt.3.html
(примечание: сам алгоритм DES имеет несколько особенностей, которые делают использование интерфейса crypt() очень плохим выбором для всего, кроме аутентификации по паролю.) - person tukan   schedule 14.09.2018