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