#svn #active-directory #apache2 #ldap #apache
#svn #active-directory #apache2 #ldap #apache
Вопрос:
Я пытаюсь настроить Apache httpd с доступом LDAP для Subversion, и мне нужна небольшая помощь:
Что я хочу сделать, так это использовать группу для доступа. Если вы являетесь членом группы, у вас есть доступ на чтение / запись. В противном случае у вас нет доступа.
Запись группы на нашем сервере LDAP (ldap://ldap.MyCompany.com/DC=MyCompany,DC=COM)
CN=SVN-GROUP,CN=Users,DC=MyCompany,DC=com
и члены группы указаны в этой записи следующим образом:
member: CN=David Weintraub,OU=Users,OU=Brooklyn,OU=Accounts,DC=MyCompany,DC=COM
member: CN=Joe Public,OU=Users,OU=Cincinnati,OU=Accounts,DC=MyCompany,DC=COM
Если вы посмотрите мою запись в LDAP, вы увидите:
memberOf: CN=SVN-GROUP,CN=Users,DC=MyCompany,DC=com
Name: David Weintraub
Distinguished Name: CN=David Weintraub,OU=Users,OU=Brooklyn,OU=Accounts,DC=MyCompany,DC=COM
sAMAccountName: dweintraub
Что я хотел бы сделать, так это войти в систему как dweintraub
(это моя учетная запись Windows) с моим паролем Windows. Я также не хочу указывать домен Windows как часть моего входа в систему. Каждый будет частью mycompany
домена.
Я пытаюсь зайти на веб-сайт Apache httpd, но немного сложно собрать все воедино.
Кстати, кто-нибудь может порекомендовать хорошую книгу по Apache?
Комментарии:
1. Вы проверили определение псевдонима для файла access в Subversion? svnbook.red-bean.com/nightly/en/… (ищите [псевдонимы])
2. Это означало бы, что мне придется изменять конфигурацию Subversion каждый раз, когда приходит или уходит новый сотрудник. Я хочу передать эту задачу нашему администратору Windows, который в любом случае должен это настроить. Всякий раз, когда мы получаем нового сотрудника, и этот сотрудник является членом этой группы, у него есть доступ к Subversion. Когда этот сотрудник уходит, у него больше нет доступа к Subversion.
3. jbruni, не могли бы вы, пожалуйста, опубликовать пример ldap-group DN?
Ответ №1:
Если вы используете Apache 2.2, это на самом деле довольно просто. Убедитесь, что вы настроили Apache так, чтобы были включены mod_ldap и mod_authnz_ldap.
Вот минимум, необходимый для аутентификации и авторизации AD ldap:
<Location /path/to/repo/>
AuthType basic
AuthName "My Repository"
AuthBasicProvider ldap
AuthLDAPURL "ldap://ldap.example.com:3268/dc=example,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "DN of service account allowed to search"
AuthLDAPBindPassword "Password of service account allowed to search"
Require ldap-group DN of group allowed access to repo
</Location>
Для ldap-группы не заключайте DN в кавычки. Указав порт 3268, вы будете подключаться к глобальному каталогу. Я обнаружил, что это работает намного лучше, потому что Apache не получит кучу ссылок.
Комментарии:
1. Спасибо за помощь. У меня еще не было времени опробовать это, но я вижу, что я делал неправильно. У меня этого не было ?sAMAccountName в конце моего AuthLDAPURL. Есть ли какие-нибудь хорошие книги по Apache httpd?
2. Я бы начал с книг О’Рейли. Они всегда хороши. К сожалению, похоже, что окончательное руководство (3-е издание) основано на apache 2.0. Этого должно быть достаточно для начала.
3. у меня все работает, за исключением части require-group, я также использую mod_dav_svn и file в качестве поставщика, файл доступа svn позволяет мне сделать некоторые каталоги доступными только для чтения для некоторых пользователей, я хочу убедиться, что все мое хранилище доступно только для одной группы AD, не могу заставить эту часть работать