Mercurial, Apache, Windows, mod_auth_sspi и hg push - PullRequest
1 голос
/ 30 июля 2010

Я играю с Mercurial 1.6 под Apache 2.2.15 на Windows-боксе в домене Windows, работающем в качестве центрального сервера репо, к которому у избранных людей будут права коммитов.

Я пытаюсьограничить доступ к Mercurial, ограничив доступ к Apache / cgi-bin / для выбора пользователей с помощью sspi_auth_module.

Если я захожу на страницу репо с помощью sspi_auth_module, навязывая ограничения на / cgi-bin /, у меня запрашивается имя пользователяи пароль, который принимается, и все работает нормально.

Если я пытаюсь использовать CLI «hg push» для фиксации из моего локального репо на сервере, из командной строки, команда очень быстро завершается ссообщение:

abort: authorization failed

Если я удаляю / cgi-bin / rules, pushing работает.

Соответствующий раздел httpd.conf: (имена отредактированы)

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
AuthName "XXXXXX"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOmitDomain On
Require user "xxxxxx"
</Directory>

Соответствующий раздел моего файла hgweb.config (репозитории хранятся в C: / Hg)

[collections]
C:/Hg = C:/Hg

[web]
allow_push = *
push_ssl = false
allow_archive = bz2 gz zip

Я хотел бы позволить контроллеру домена беспокоиться об аутентификации (для меня этолучше, чем всем запоминать дополнительные пароли!) - это жизнеспособный подход?

1 Ответ

1 голос
/ 30 июля 2010

Я нашел решение. Я подозреваю, что часть проблемы заключалась в том, что у меня не было указано SSPIDomain (ошибочно принимая его за AuthName ... duh)

В любом случае, следующее в httpd.conf помогло: (директива ScriptAlias ​​была там с самого начала, кстати)

ScriptAlias /hg "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/hgweb.cgi"

<Location /hg>
AuthName "Mercurial Authentication"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain XXXXXX
SSPIOmitDomain On     
SSPIOfferBasic On 
SSPIBasicPreferred Off
Require user "xxxxxx"
</Location>

Я удалился как обязательный пользователь, у меня запросили имя пользователя и пароль, и я не смог пройти аутентификацию. Затем я добавил себя обратно и смог подтвердить подлинность ОК.

Спасибо за внимание!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...