EXIM + SMTP авторизация по LDAP, siegerstein, 15-Мрт-07, 18:08 [смотреть все]Проблема такая:Есть exim, ldap. Надо чтобы пользователи отправляли почту через авторизацию: LDAPCFG = user=cn=root,dc=firma,dc=com pass=xxx connect=5 plain: driver = plaintext public_name = PLAIN server_prompts = : server_condition = ${if ldapauth \ {user=${lookup ldapdn \ {LDAPCFG ldap:///ou=Mail_Users,dc=firma,dc=com?dn?sub?(uid=$2)}} \ pass=$3 connect=5 ldap:///} {true} {fail}} server_set_id = $2 Это кусок канает, НО: Пароли в этом случае должны храниться в LDAP в открытом виде (clear), что не хорошо. Задача: как написать этот кусок кода, чтобы он сверял пароль в LDAP который зашифрованый к примеру по ssha хешу? К примеру если пароль в LDAP храниться в виде 123 то все канает, если в виде хеша {SSHA}k/sDi92JshICtX8EXhHb8f0vecEV5YQ8 то не прокатит.
|
- EXIM + SMTP авторизация по LDAP, stas_v, 19:17 , 15-Мрт-07 (1)
Судя по документации, да и по опыту, ldapauth просто биндится с указанным DN и указанным паролем к серверу и возвращает true или false в зависимости от результата (т.е. удалась авторизация или нет).Если для любого из клиентских DN проходит биндинг из, скажем, командной строки (см. утилитку ldapwhoami, например), то и из exim всё должно быть отлично. Пароль может храниться в любой поддерживаемой ldap сервером схеме (SSHA, MD5 и т.д.), на результат это не влияет: пароль проверяет не exim а slapd (в случае OpenLDAP). Вот другое дело, если вы захотите использовать всякие CRAM да DIGEST с NTLM'ом - тогда вам действительно придётся хранить пароли открытым текстом. (Но лучше всего тогда использовать SSL/TLS)
- EXIM + SMTP авторизация по LDAP, siegerstein, 19:02 , 16-Мрт-07 (2)
>Судя по документации, да и по опыту, ldapauth просто биндится с указанным >DN и указанным паролем к серверу и возвращает true или false >в зависимости от результата (т.е. удалась авторизация или нет). > >Если для любого из клиентских DN проходит биндинг из, скажем, командной строки >(см. утилитку ldapwhoami, например), то и из exim всё должно быть >отлично. Пароль может храниться в любой поддерживаемой ldap сервером схеме (SSHA, >MD5 и т.д.), на результат это не влияет: пароль проверяет не >exim а slapd (в случае OpenLDAP). > >Вот другое дело, если вы захотите использовать всякие CRAM да DIGEST с >NTLM'ом - тогда вам действительно придётся хранить пароли открытым текстом. (Но >лучше всего тогда использовать SSL/TLS) Чорт! Действительно выходит с SSHA. Куда я смотрел? Спасибо друг!
- EXIM + SMTP авторизация по LDAP, Nikolay, 15:24 , 05-Апр-07 (3)
>Судя по документации, да и по опыту, ldapauth просто биндится с указанным >DN и указанным паролем к серверу и возвращает true или false >в зависимости от результата (т.е. удалась авторизация или нет). > >Если для любого из клиентских DN проходит биндинг из, скажем, командной строки >(см. утилитку ldapwhoami, например), то и из exim всё должно быть >отлично. Пароль может храниться в любой поддерживаемой ldap сервером схеме (SSHA, >MD5 и т.д.), на результат это не влияет: пароль проверяет не >exim а slapd (в случае OpenLDAP). > >Вот другое дело, если вы захотите использовать всякие CRAM да DIGEST с >NTLM'ом - тогда вам действительно придётся хранить пароли открытым текстом. (Но >лучше всего тогда использовать SSL/TLS) А если неизвестен dn пользователя, а известен только uid? Т.е. dn = cn=Дядя Вася, ou=Администрация, ou=Организация, ou=ru
- EXIM + SMTP авторизация по LDAP, stas_v, 11:00 , 06-Апр-07 (4)
>А если неизвестен dn пользователя, а известен только uid? Т.е. dn = >cn=Дядя Вася, ou=Администрация, ou=Организация, ou=ru А в этом примере так и есть: server_condition = ${if ldapauth \ {user=${lookup ldapdn {LDAPCFG ldap:///ou=Mail_Users,dc=firma,dc=com?dn?sub?(uid=$2)}} \ pass=$3 connect=5 ldap:///} \ {true} {fail}} Мы вначале ищем DN пользователя ниже базового, а потом этим найденным DN'ом биндимся. А можно попробовать SASL. Там пользователь указывается только именем.
|