Apache LDAP Аутентификация Redmine - PullRequest
2 голосов
/ 04 октября 2011

У меня есть установка Redmine на сервере Apache (RHEL 6.1).У меня также есть сервер Subversion, работающий на /var/svn.У меня настроена правильная аутентификация LDAP для моего subversion, поэтому, когда кто-то обращается к хранилищу subversion (либо через командную строку: svn checkout / update / commit, либо через http://myserver.com/svn/project),, он запрашивает имя пользователя и пароль, которые аутентифицируются поСервер LDAP.

Однако: при просмотре страницы проекта в Redmine я вижу вкладку «Репозиторий» (и она ссылается на правильный адрес: http://myserver.com/svn/project). Но когда я перехожу на эту вкладку,он отображает «404 Запись или ревизия не найдены в репозитории». У меня такое ощущение, что 404 исходит от Redmine, не в состоянии аутентифицироваться на LDAP. Поэтому мой вопрос заключается в том, как разрешить Redmine в этот каталог, но все остальныенужно пройти аутентификацию по LDAP?

1 Ответ

2 голосов
/ 07 октября 2011

Я выяснил свою проблему и нашел довольно простое решение.Мое предположение было верным - поскольку Redmine не знал, как обрабатывать запрос LDAP, он выдал 404.

Ниже приведена правильная конфигурация Apache, позволяющая Redmine (или любой службе, работающей на том же сервере) черезпроцесс аутентификации:

<Location /svn>
    # The following two lines allow for any request made by this machine through
    #  We do this to allow Redmine to have access without needing to authenticate against LDAP
    # NOTE: The IP address MUST be the one given by DHCP - the loop-back (127.0.0.1) will NOT WORK
    Order allow,deny
    Allow from ACTUAL_IP_ADDRESS (example: 123.45.67.100)


    # The following authenticates against LDAP for any request NOT made by the same server
    # This includes anyone attempting to access:
    #       http://myserver.com/svn/*
    #  either via web-browser, or svn command
    #
    # Tell apache this is a subversion repository
    DAV svn
    # Where the subversion repository list exists on the file system
    SVNParentPath "/var/svn"
    # What kind of authentication 
    AuthType Basic
    AuthName "Restricted Subversion Content"
    AuthBasicProvider ldap
    AuthLDAPBindDN "YOUR_BIND_DN"
    AuthLDAPBindPassword "YOUR_BIND_PASSWORD"
    AuthLDAPURL "YOUR_LDAP_URL"
    # Require a valid-LDAP user (if not from the allowed IP address)
    Require valid-user

    # This line (very important) tells Apache that the request needs to follow AT LEAST
    # one of the following:
    #       - The request is from the IP address listed above
    #       - All others MUST authenticate using LDaP
    # If we wanted BOTH to be required (not in our case), we would use "Satisfy All"
    Satisfy Any

Надеюсь, это поможет кому-то другому, ищущему подобное решение!

...