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

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

Я могу щелкнуть обзор http : // имя сервера : порт / hg

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

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

  • РепоПроектА
  • РепоПроектБ
  • РепоПроектC

Щелчок по приведенным выше ссылкам на репозиторий — это нормально, так как я могу видеть внешний интерфейс Hg.

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

  • A)

    • Only users "c123456", "c654321" can commit files in RepoProjectA.
    • Только пользователи «c222222» и «c333333» могут вносить изменения, и никто другой не может вносить изменения.

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

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

  • B)

    • Only users "u123456" and "u654321" can commit files on branch "branch1" of RepoProjectB. (assuming we have a branch "branch1" in RepoProjectB).
    • Только пользователи "u222222" и "u333333" могут отправлять файлы
    • Никто не может зафиксировать/отправить что-либо в ветку TRUNK/default
    • Исключение: Каждый из группы "RepoProjectB-GROUP" или "ABCDGroup" может делать что угодно в этом репозитории или его ветках.

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

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

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

Может кто подсветит.


person AKS    schedule 17.09.2012    source источник


Ответы (1)


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

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

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

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

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

??? -- как заставить

[auth]
xx.prefix = servername/hg_or_something

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

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

OK, I put this in ~/.hgrc (Linux/Unix -home directory's .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's FQDN.
person AKS    schedule 11.01.2013