Использование LDAP в качестве метода аутентификации для управления git-репозиториями - PullRequest
3 голосов
/ 10 октября 2011

Есть ли у кого-нибудь опыт использования LDAP в качестве метода авторизации для управления репозиториями Git, мой босс предпочитает использовать LDAP, чем другие инструменты.Любое предложение поможет!Более подробная информация будет приветствоваться.

Ответы [ 2 ]

1 голос
/ 10 октября 2011

Вы можете легко добавить аутентификацию LDAP на сервер Apache Httpd.
И вы можете легко добавить смарт-скрипт http cgi 'git-http-backend' (в комплекте с git)

Это означает, что вы можете нажать на адрес https, если вы сначала ввели свои учетные данные LDAP. Вы авторизованы для доступа к страницам Apache, но аутентификация вообще не используется.
Смотрите " Разница между mod_authn_ldap и mod_authz_ldap ".

Тем не менее:

Единственный способ использовать аутентификацию Git и авторизацию в сочетании с доступом Gitolite .

См., Например, " Обеспечение доступности репозиториев для клиентов в режиме ssh и http * ".

Я настроил gitolite с (множественной) аутентификацией LDAP, сделал шаг аутентификации в файле конфигурации Apache, а затем вызвал gitolite с идентифицированным пользователем в качестве параметра:

Сначала я объявляю псевдонимы LDAP :

<AuthnProviderAlias ldap myldap>
  AuthLDAPBindDN cn=Manager,dc=example,dc=com
  AuthLDAPBindPassword secret
  AuthLDAPURL ldap://localhost:@PORT_LDAP_TEST@/dc=example,dc=com?uid?sub?(objectClass=*)
</AuthnProviderAlias>

<AuthnProviderAlias ldap companyldap>
  AuthLDAPBindDN "@LDAP_BINDDN@"
  AuthLDAPBindPassword @LDAP_PASSWORD@
  AuthLDAPURL @LDAP_URL@
</AuthnProviderAlias>

@xx@» - это шаблоны, подлежащие замене тестовыми или производственными значениями)

Затем я использую эти псевдонимы в VirtualHost, в которых я называю gitolite (если аутентификация прошла успешно)

# GitHttp on @PORT_HTTP_HGIT@ (extract)
Listen @PORT_HTTP_HGIT@
<VirtualHost @FQN@:@PORT_HTTP_HGIT@>
    ServerName @FQN@
    ServerAlias @HOSTNAME@
    SetEnv GIT_PROJECT_ROOT @H@/repositories
    SetEnv GIT_HTTP_EXPORT_ALL
    SetEnv GITOLITE_HTTP_HOME @H@
    ScriptAlias /hgit/ @H@/sbin/gitolite-shell/  # <=== will call gitolite
    SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
    <Location /hgit>
        Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
        #AllowOverride All
        order allow,deny
        Allow from all

        AuthName "LDAP authentication for ITSVC Smart HTTP Git repositories"
        AuthType Basic
        # Authentication against one ldap, then a second
        AuthBasicProvider myldap companyldap
        AuthzLDAPAuthoritative Off
        Require valid-user
        AddHandler cgi-script cgi
    </Location>
</VirtualHost>
0 голосов
/ 10 октября 2011

Поскольку вы упомянули OpenLDAP, я предполагаю, что вы хотите сделать эту работу в среде Unix / Linux.

Сам Git не выполняет аутентификацию на самом деле.Вам необходимо настроить ldap для управления сервисом, используемым для доступа к git-репозиторию.Например, если вы используете SSH, настройте демон SSH для аутентификации с использованием ldap.

Как это настроить, зависит от того, какие именно настройки вы используете.Если вам нужна помощь, я рекомендую опубликовать подробный вопрос на serverfault.com .

. Вы также можете найти этот связанный вопрос интересным.

...