Как проверить, что я правильно настроил Subversion Path Based Authorization? - PullRequest
0 голосов
/ 14 января 2009

Проблема в настройках безопасности хранилища Subversion, обслуживаемого через веб-сервер Apache.

Я использую Аутентификацию на основе пути, чтобы защитить некоторую информацию о компании от внешних соавторов. Мне нужно что-то, что проверяет, что авторизация дана людям, которых я хочу, т.е. мне нужно проверить, что я не допустил ошибок в конфигурации.

Существует простой способ проверить это: смоделировать доступ к ресурсу, используя имя пользователя и пароль пользователей. Но этот метод требует знания пароля пользователей.

Например, следующий скрипт BASH проверяет авторизацию каждого пользователя по указанному пути ($ url). Примечание: файл users-files.txt содержит имя пользователя и пароль пользователей в форме «имя пользователя: пароль».

url="http://my.company.com/svn/repo1/private-data/"
while read line; do
  username="${line%:*}"
  password="${line#*:}"
  if wget --quiet --user="$username" --password="$password" -- "$url"; then
    echo -e "$username:\tgranted"
  else
    echo -e "$username:\tdenied"
  fi
done < users-list.txt

Есть способ выполнить эту проверку, не зная паролей пользователей, а только имя пользователя? Я root на машине, где работает HTTPD и Subversion. Предоставляет ли HTTPD какой-либо инструмент аудита?

Аутентификация настраивается следующим образом:

<Location /svn/>
   DAV svn
   SVNParentPath /var/svn/
   AuthType Basic
   AuthBasicProvider ldap
   AuthName "Subversion repository"
   AuthLDAPURL ldap://127.0.0.1:389/ou=People,o=mycompany.com?uid?sub?(objectClass=*)
   Require valid-user
   AuthzSVNAccessFile /var/svn/svn-access-file.conf
   Options Indexes
   SVNListParentPath on
</Location>

1 Ответ

2 голосов
/ 14 января 2009

Если под «проверкой» вы имеете в виду поиск определения, то вы можете просто проверить файлы конфигурации безопасности на сервере (в частности, что документация называется «файлом правил») "), чтобы узнать, кому разрешен доступ к каким путям.

Если под «проверкой» вы подразумеваете «тест», то есть при проверке правил, которые пользователи на самом деле допускают на практике, подключая их по HTTP - тогда нет, вы не можете. В вашем примере вы пытаетесь подключиться к Subversion как заданный пользователь (имя). Если бы вы смогли сделать это без пароля, это было бы издевательством над всей системой безопасности.

...