使用LDAP作为auth方法来管理git存储库

时间:2011-10-10 07:03:03

标签: git openldap

有没有人有使用LDAP作为auth方法来管理Git存储库的经验,我的老板更喜欢使用LDAP而不是其他工具。任何建议都会有所帮助!我们非常欢迎更详细的信息。

2 个答案:

答案 0 :(得分:1)

您可以轻松地将LDAP身份验证添加到Apache Httpd服务器 您可以轻松添加smart http cgi脚本'git-http-backend'(与git打包)

这意味着您可以推送到https地址,前提是您先输入了LDAP凭据。您被授权访问Apache页面,但根本不使用身份验证 请参阅“Difference between mod_authn_ldap and mod_authz_ldap”。

然而:

实际使用身份验证并与Git 授权访问权限相结合的唯一方法是使用 Gitolite

例如,请参阅“Making repositories available to both ssh and http mode clients”。

我已经设置了gitolite和(多个)LDAP身份验证,在Apache配置文件中进行身份验证步骤,然后使用标识的用户作为参数调用gitolite:

首先我声明LDAP aliases

<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@'是要由测试或生产值替换的模板)

然后我use those aliases in a VirtualHost in which I call 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>

答案 1 :(得分:0)

既然你提到了OpenLDAP,我假设你想在Unix / Linux环境下工作。

Git本身不进行身份验证。您需要设置ldap来管理用于访问git存储库的服务。例如,如果您使用SSH,则配置SSH守护程序以对ldap进行身份验证。

如何配置完全取决于您使用的确切设置。如果您需要帮助,我建议在serverfault.com上发布详细问题。

您可能还会发现this related question有趣。