LINUX.ORG.RU
ФорумAdmin

SVN + LDAP (Apache), управление доступом.


0

0

Имею несколько SVN-репозитариев в директории /var/svn/repos и аутентификацию пользователей через LDAP. Хочу тонко настраивать права доступа на чтение и изменение к разным репозитариям. В руководстве говорится, что это нужно делать с помощью опции AuthzSVNAccessFile, однако в этом файле из имён пользователей работает только "*", то есть все пользователи. Пробовал указыват DN пользователей, не работает. Как правильно управлять доступом к репозитариям в случае LDAP аутентификации?

★★★★★

[groups]
dev1 = user.name1, user.name2
dev2 = user.name3, user.name4

[test:/]
* = rw

[main:/]
@dev1=rw
@dev2=r

[doc:/]
@dev1=r
@dev2=r
user.name5=rw


Еще вопросы?

zgen ★★★★★
()
Ответ на: Ещё вопросы. от Camel

это был AuthzSVNAccessFile :)

аутентификация в ldap настраивается примерно так:

AuthType Basic
AuthName SVN
AuthBasicProvider ldap
AuthLDAPURL ldap://localhost:389/dc=XXX,dc=YYY?uid?sub?(objectClass=*)
AuthLDAPBindDN mybinddn
AuthLDAPBindPassword mybidnpassword
require valid-user

никакие dn в svn засовывать не нужно, поскольку в REMOTE_USER попадет именно то что ввел пользователь, нужно только в AuthLDAPURL фильтр правильно указать (в моем примере будет искаться по uid)

borisych ★★★★★
()
Ответ на: комментарий от borisych

Ещё чуточку.

Спасибо, borisych. Хоть твой ответ и не помог, но к правильному подтолкнул. 
Сейчас у меня такая конфигурация: 

<Location /svn>
  DAV svn
  SVNParentPath /var/svn/repos
  AuthType Basic
  AuthBasicProvider ldap
  AuthName "MyDomain Subversion Server"
#  AuthLDAPBindDN cn=admin,dn=mydomain,dn=ru
#  AuthLDAPBindPassword bozzforth
  AuthLDAPURL ldap://ldap.mydomain.ru/ou=Users,dc=mydomain,dc=ru?uid?sub?(objectClass=*)
  AuthzLDAPAuthoritative off
  Require valid-user
#  Require ldap-user testuser
#  Require ldap-group "cn=Domain Users,ou=Groups,dc=mydomain,dc=ru"
#  Require ldap-attribute gidNumber=514
  Satisfy any
  AuthzSVNAccessFile /etc/apache2/dav_svn.authz
</Location>

На изменения в dav_svn.authz, который есть мой AuthzSVNAccessFile, вроде бы реагирует. 

Единственный недостаток, при первом обращении спрашивает пароль, а хочется чтобы на виндовых 
машинах пускало не спрашивая. Проблема, насколько я понимаю, в том, что в окне авторизации 
приходится вписывать имя пользователя как username, а не MYDOMAIN\username. 
То есть нужно сделать наоборот, чтобы автоматически принималась запись вида MYDOMAIN\username
И зачем нужна опция AuthLDAPBindDN? 

Camel ★★★★★
() автор топика
Ответ на: Ещё чуточку. от Camel

>Единственный недостаток, при первом обращении спрашивает пароль, а хочется чтобы на виндовых машинах пускало не спрашивая.

LDAP майкрософтовский чтоли? чтобы без паролей все было, нужно либо mod_ntlm использовать (он только в windows работает), либо mod_krb5, ldap в обоих случаях не нужен.

borisych ★★★★★
()
Ответ на: комментарий от borisych

Не Майкрософт!

> LDAP майкрософтовский чтоли?

Не-е, OpenLDAP на Ubuntu. Только клиенты виндовые в домене Samba. Насколько я понимаю, Windows на любой ресурс пробует сначала DOMAIN\user'ом обратится, потом анонимно, потом выводит пользователю окно авторизации.

Camel ★★★★★
() автор топика
Ответ на: Не Майкрософт! от Camel

>Windows на любой ресурс пробует сначала DOMAIN\user'ом обратится, потом анонимно, потом выводит пользователю окно авторизации.

неправильно

borisych ★★★★★
()
Ответ на: комментарий от borisych

Всё же.

И всё же, как можно заставить Apache воспринимать те реквизиты, которые подсовывает Windows?

Camel ★★★★★
() автор топика
Ответ на: Всё же. от Camel

windows никакие реквизиты по http не подсовывает. в случае IIS и MSAD происходит примерно так: сервер говорит что может принять аутентификацию по ntlm/kerberos, в этом случае (если IE доверяет серверу) IE начитает аутентифицироваться при помощи ntlm/kerberos.

http://msdn.microsoft.com/en-us/library/aa505992.aspx

borisych ★★★★★
()
Ответ на: комментарий от borisych

Кланяюсь.

borisych, ты высок. Спасибо за помощь.

Camel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.