Приветствую снова! Вобщем, наконец, дошли руки, и я сделал наконец-то авторизацию на squid в openldap.
Basic:
auth_param basic program /usr/sbin/squid_ldap_auth -b "dc=Intranet,dc=TKS" -u "uid" -D "cn=Administrator,dc=Intranet,dc=TKS" -w "123456" -v 3 -h mail.mydomain.com
По этой схеме в openldap пароли пользователей хранятся в любом виде: plain, md5, sha1, etc ...
Digest:
auth_param digest program /usr/sbin/digest_ldap_auth -b "dc=Intranet,dc=TKS" -A "userPassword" -F "uid=%s" -D "cn=Administrator,dc=Intranet,dc=TKS" -w "123456" -v 3 -h mail.mydomain.com
Вот тут уже интереснее: если пароль пользователя хранится в открытом виде (plaintext), то авторизация проходит успешно. Однако, существует вариант хранения пароля в sha1, тогда требуется непросто связка пользователь:пароль, а пользователь:$REALM:пароль. Вопрос - что такое $REALM? В каком поле его хранить? И надо ли его указывать при авторизации? Очень запутанно: потому что на примере
http://wiki.squid-cache.org/KnowledgeBase/LdapBackedDigestAuthentication я остановился на второй операции:
2. Create a hash in one account to make a test. Run it from the shell.
REALM="Squid proxy-caching web server" HASH=`echo -n "usuario1:$REALM:password" | md5sum | cut -f1 -d' '` ldapmodify -x -D "uid=usuario1,dc=Intranet,dc=TKS" -w "temppass" << EOF
dn: uid=usuario1,ou=Users,dc=minharede,dc=lan
l: $REALM:$HASH
EOF
Ошибка:
ldapmodify: modify operation type is missing at line 2, entry "uid=usuario1,dc=Intranet,dc=TKS"
Сразу ещё спрошу про логи - куда пишет slapd? Только в /var/log/messages? Или ещё куда-то? Openldap стоит на SLES 11.