OpenSUSE Apache - аутентификация пользователей группы LDAP - Mercurial

  • ОС: OpenSUSE Linux
  • Контроль версий: Mercurial Hg
  • Веб-интерфейс: Apache2.2

Я могу нажать кнопку просмотра http://имя_сервера: порт /hg

Как только я нажимаю на него, он запрашивает у меня учетные данные каталога Windows AD.

Теперь у меня есть следующие репозитории в папке /srv/www/htdocs/hg/repos:

  • RepoProjectA
  • RepoProjectB
  • RepoProjectC

нажатие на указанные ссылки репозитория в порядке, так как я могу видеть передний конец Hg.

Теперь я хочу добавить аутентификацию и авторизацию, чтобы:

  • А)

    • Только пользователи "c123456", "c654321" могут фиксировать файлы в RepoProjectA.
    • Только пользователи "c222222" и "c333333" могут нажимать изменения, и никто другой не может нажать

    Для вышесказанного, какие файлы (???) мне нужно изменить и какие изменения/записи следует добавить чтобы это произошло.

    PS: Я использую LDAP как аутентификацию с помощью Windows Active Directory. Мне все еще нужно  используйте модули htpasswd2 или htdigest2 для создания любых пользовательских файлов - или для предоставления  доступ к группе создает любой групповой файл???? Я думал, что группы могут быть взяты из  что уже есть в Active Directory. Поскольку это разные проекты  репозитории, мне нужны отдельные файлы .htaccess? Не будет ли один глобальный файл  трюк?

  • B)

    • Только пользователи "u123456" и "u654321" могут фиксировать файлы на ветке "branch1" в RepoProjectB. (предполагая, что в RepoProjectB есть ветвь "branch1" ).
    • Только пользователи "u222222" и "u333333" могут форматировать файлы
    • Никто не может совершать/нажимать что-либо на ветку TRUNK/default
    • Исключение: все из группы "RepoProjectB-GROUP" или "ABCDGroup" могут делать что угодно в этот репозиторий или ветки.

Для вышеизложенного, какие файлы (???) мне нужно изменить и какие изменения/записи следует добавить, чтобы это произошло.

  • C) Я попробовал использовать подсказку CMD и утилиту TortoiseHg с моей клиентской машины Windows, тогда как  делать какие-либо операции в Hg (клон, ветвь, добавление, фиксация, push и т.д.), мне предлагается  каждый раз указывая имя пользователя и пароль. Это работает, но я получаю подсказку для  каждое действие в Hg.

    Как я могу ограничить, чтобы пользователь предоставлял только учетные данные Windows Active Directory?  один раз за сеанс.

Может кто-нибудь поставить немного света.

Ответ 1

Некоторый прогресс в отношении меркуриального брелка, следующий, я сделаю, это начать использовать более гранулированные группы и разрешить/запретить путь по каталогу.

более подробная информация по адресу:

http://stackoverflow.com/info/14267873/mercurial-hg-no-changes-found-cant-hg-push-out/14269997#14269997
http://www.linuxquestions.org/info/showthread.php?p=4867412#post4867412
http://stackoverflow.com/info/12503421/hg-push-error-and-username-not-specified-in-hg-hgrc-keyring-will-not-be-used/14270602#14270602
http://stackoverflow.com/info/12468634/opensuse-apache-windows-ldap-group-user-authentication-mercurial/14270648#14270648

если запрашивается несколько раз для учетных данных пользователя в mercurial. Установите Mercurial_Keyring и затем

возникает этот вопрос, который никто не объяснил простым способом.

??? - как сделать

[auth]
xx.prefix = servername/hg_or_something

работать со всеми репозиториями под именем сервера /hg если я использую имя сервера, имя_сервера IP или имя_сервера FQDN?

ОТВЕТ: Арун • 2 минуты назад       -

OK, I put this in ~/.hgrc (Linux/Unix -home directory .hgrc hidden file) or Windows users %UserProfile%/mercurial.ini or %HOME%/mercurial.ini file.

[auth]
default1.schemes = http https
default1.prefix = hg_merc_server/hg
default1.username = c123456

default2.schemes = http https
default2.prefix = hg_merc_server.company.com/hg
default2.username = c123456

default3.schemes = http https
default3.prefix = 10.211.222.321/hg
default3.username = c123456

Now, I can checkout using either Server/IP/Server FQDN.