Не могу настроить apache для авторизации через ldap (mod_authnz_ldap) [SOLVED]
joper 20 февраля, 2008 - 16:43
Пытаюсь настроить чтобы для досптупа к Subversion использовался лдап, не получается.
Конфинг(символ "<" щас убрал, т.к. форум теги сжирает):
# cat /etc/apache2/test/ldap.conf Directory /data/test/repos> order allow,deny Allow from all /Directory> IfDefine DAV> IfDefine LDAP> IfDefine AUTHNZ_LDAP> IfModule authnz_ldap_module> IfModule dav_module> IfModule dav_fs_module> DavLockDB "/var/lib/dav/lockdb" Location /repos> DAV svn SVNPath /data/test/repos AuthType Basic SSLRequireSSL AuthName "Subversion repository" Require valid-user # AuthUserFile /data/.htpasswd AuthzUserAuthoritative off AuthLDAPURL ldaps://ldap.xxx.yyy/ou=Users, ou=Main, dc=xxx, dc=yyy?uid?sub?(objectClass=*) AuthLDAPBindDN cn=svn, ou=SysUsers, ou=Main, dc=xxx, dc=yyy AuthLDAPBindPassword XXXXXXXXXXX /Location> /IfModule> /IfModule> /IfModule> /IfDefine> /IfDefine> /IfDefine>
/etc/apache2/test/ldap.conf естественно включён в httpd.conf
В логи пишет:
# tail /var/log/apache2/ssl_error_log ............. [Wed Feb 20 14:52:31 2008] [error] [client 192.168.1.254] (9)Bad file descriptor: Could not open password file: (null) [Wed Feb 20 14:52:31 2008] [error] [client 192.168.1.254] File does not exist: /var/www/localhost/htdocs/favicon.ico, referer: https://10.120.10.203/repos/html [Wed Feb 20 14:52:34 2008] [error] [client 192.168.1.254] client denied by server configuration: /data/test/repos/ ..............
Странно, что он ругается "Could not open password file", если по идее должен ломиться в лдап, в логах лдапа соотвтветственно тоже пусто.
»
- Для комментирования войдите или зарегистрируйтесь
Это апач ИМХО
Это апач ИМХО ведет себя не так как в доках писано. Настраивать удобней через .htaccess. Ибо конфиги перечитывать не надо. После успешной настройки можно перенести в соответсвующий конфиг апача. Похожие проблемы возникли при настройке доступа к разделу сайта через авторизацию в АД. Вот рабочий хтаксесс
AuthName "My secret part"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL "ldap://mypdc.mydomen.ru:389/ou=Пользователи домена,dc=mydomen,dc=ru?sAMAccountName"
AuthzLDAPAuthoritative off
AuthLDAPBindDN cn=dummyuser,cn=users,dc=vlg-gaz,dc=ru
AuthLDAPBindPassword dummypassword
#Require valid-user
Require ldap-group CN=GoodUserGroup,CN=Users,DC=mydomen,DC=ru
Ключевой параметр AuthBasicProvider ldap . Без него ищет файл и ругаиццо. Да, в случае ежели на том конце АД в AuthLDAPURL обязательно надо указывать организейшен юнит, в котором искать. Ибо в противном случае модуль авторизации может не отработать.
По поводу русских наименований юнитов, групп и юзверей в АД. Кодировка конфиг файла в обязаловку utf. По крайней мере мне не удалось заставить работать файлик в кодировке koi-8
Спасибо, за
Спасибо, за "AuthBasicProvider ldap". Заработало. + Забыл в настройках сервера(conf.d) вписать "-D AUTHNZ_LDAP"
Братья по
Братья по разуму, не откажите в милости, ибо мозг скоро свариться :(
Цель проста и похожа на цель предыдущего оратора - подружить SubVersion и LDAP.
Методом проб и ошибок в httpd.conf появилась следующая секция:
(это список подключенных модулей)
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule python_module modules/mod_python.so
LoadModule sspi_auth_module modules/mod_auth_sspi.so
(это настройки самой SubVersion)
Location /svn/>
DAV svn
SVNParentPath c:\svn
SVNListParentPath On
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain rb
AuthName "Subversion Repositories"
AuthzSVNAccessFile "c:\svn\authz"
Require valid-user
/Location>
Авторизация и аутентификация доменных пользователей работает очень хорошо, но я никак не могу "привязать" аутентификацию через группы в Windows Active Directory.
Замучался вконец, перепробовал много вариантов, но увы...
Готов предоставить дополнительную информацию.
С уважением,
Юрий.
Итак, покурил
Итак, покурил маны, поплясал с бубном и вот что получилось:
Location /svn/>
DAV svn
SVNParentPath c:\svn
SVNListParentPath On
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain rb
SSPIUsernameCase lower
SSPIPerRequestAuth on
SSPIOfferBasic On
AuthName "Subversion Repositories"
AuthzSVNAccessFile "c:\svn\authz"
Require group Domain\DomainGoup
/Location>
Все работает. Правда, я не смог отказаться от строки AuthzSVNAccessFile "c:\svn\authz", зато провекра прав доступа к хранилищу происходит в два этапа:
1. Аутентификация - для успешной аутентификации доменный пользователь должен был влючен в группу Domain\DomainGoup
2. Авторизация - после того, как Апач пропустил пользователя, в файле c:\svn\authz происходит его авторизация, т.е. система определяет куда и с какими правами данному пользователю разрешено ходить.
Над системой доступов в c:\svn\authz пока еще работаю.
Надеюсь, что смог кому-то помочь.
С уважением.
Apache2+авторизация в AD
Долго пытался на Linux прикрутить Apapche к АД.
Начал тестить конфиг.
Поставил апач2 на виндовую машинку закатал .htaccess и прописал в него тот же конфиг что и в Линуксе
AuthName "sekret"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL ldap://[IP_host_AD]:389/dc=mydomen,dc=ru?sAMAccountName
AuthLDAPRemoteUserIsDN off
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
AuthzLDAPAuthoritative off
AuthLDAPBindDN cn=admin,cn=users,dc=mydomen,dc=ru
AuthLDAPBindPassword ************
Require group cn=users,ou=users group,dc=mydomen,dc=ru
так вот он отработал нормально. Машинка в домен не была включена. Он сам прицепился к АД
AD - Microsoft Windows 2003 Server.
Че-то видать я не настроил еще в Linux.
При авторизации в error.log Apache2
auth_ldap authenticate: user myuser authentication failed; URI /wwwsait/ [ldap_search_ext_s() for user failed][Operations error]
Есть соображения что нужно донастроить???
Посмотри логи
Посмотри логи ЛДАПА, куда он обращается и что ищет, може дополнительные атрибуты какие-нибудь надо указать.
Модуль авторизации
По поводу авторизации в АДе. У меня работает вот так:
AuthType Basic
AuthName "Projects Server"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPUrl "ldap://domain.components/cn=Users,dc=domain,dc=components?samAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "theUser@domain.components"
AuthLDAPBindPassword thePassword
Require ldap-group CN=subversion,CN=Users,DC=domain,DC=components
Как водится, очень долго пробовал все возможные варианты AuthLDAPUrl. Господа, надо, по ходу, пользоваться каким-нибудь LDAP-браузером в таких делах! Если АД полностью за тебя ведет каталог=)
Не знаю, как тогда было, но это у нормально работает c mod_authnz_ldap (-D AUTHNZ_LDAP) в apache-2.2.16.