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

openldap, пароли crypt не работают для sasl

Я работал над переносом существующего кластера серверов на использование openldap для управления пользователями / паролями. Однако я столкнулся с проблемой - у меня нет доступа к паролям в виде обычного текста, и все методы SASL (которые я определил до сих пор) требуют паролей в виде обычного текста в базе данных. Единственный доступный формат - crypt. Период.

Для многих программ по-прежнему доступна простая аутентификация. Однако, если используется libldap2 (openldap), в частности, семейство функций ldap_sasl_interactive_bind поддерживает только соединения SASL, все остальные отключены и устарели.

Итак, как мне пройти аутентификацию, если SASL сломан? (SASL не поддерживает crypt = сломан)

Используемые подходы к аутентификации: радиус (свободный радиус)
сеть
пользовательские приложения C
ssh
ldap зеркальное отображение

Мне удалось заставить работать радиус, вот и все.

Помощь очень приветствуется - в документации не говорится, почему простая аутентификация устарела, и, похоже, она единственная, которая может работать. Каждый раз, когда задействован SASL, ничего не работает.

Среда - ubuntu-14.04; openldap, cyrus-sasl (через openldap), freeradius, apache и пользовательские компоненты C и C ++.

Нет большой разницы между простой аутентификацией LDAP и SASL / PLAIN. В обоих случаях пароль в виде открытого текста предоставляется клиентом и обрабатывается сервером. OpenLDAP не требует хранения паролей в простой текст, и, по сути, может использовать локальную систему склеп (3) функция. Поскольку вы имеете дело с паролями в виде открытого текста во время передачи, следует принять меры к тому, чтобы эти пароли не отправлялись в открытом виде. Обычно это делается с помощью STARTTLS как части соединения LDAP, но LDAPS также возможен.

$ ldapwhoami -h ldap.example.com -ZZ -x -D uid=user,ou=people,dc=example,dc=com -W
Enter LDAP Password:
dn:uid=user,ou=people,dc=example,dc=com
$ ldapwhoami -h ldap.example.com -ZZ -D uid=user,ou=people,dc=example,dc=com -W
Enter LDAP Password: 
dn:uid=user,ou=people,dc=example,dc=com