2011-10-10 61 views

回答

0

既然你提到了OpenLDAP,我假設你想在Unix/Linux環境下進行這項工作。

Git本身不會執行身份驗證afaik。您需要設置ldap來管理用於訪問git存儲庫的服務。例如,如果您使用SSH,則將您的SSH守護程序配置爲針對ldap進行身份驗證。

如何配置,完全取決於您使用的確切設置。如果您需要幫助,我建議在serverfault.com上發佈詳細問題。

您可能還會發現this related question有趣。

1

您可以輕鬆地將LDAP身份驗證添加到Apache Httpd服務器。
而且你還可以輕鬆添加smart http CGI腳本「的git-HTTP-後端」(用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」。

我有(多個)LDAP認證設置gitolite,使得在Apache的配置文件的認證步驟,然後調用gitolite與所識別的用戶作爲參數:

首先我聲明LDAP aliases

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

<AuthnProviderAlias ldap companyldap> 
    AuthLDAPBindDN "@[email protected]" 
    AuthLDAPBindPassword @[email protected] 
    AuthLDAPURL @[email protected] 
</AuthnProviderAlias> 

(在「@[email protected]」是模板是通過測試或生產的值替換)

然後我use those aliases in a VirtualHost in which I call gitolite(如果認證成功)

# GitHttp on @[email protected] (extract) 
Listen @[email protected] 
<VirtualHost @[email protected]:@[email protected]> 
    ServerName @[email protected] 
    ServerAlias @[email protected] 
    SetEnv GIT_PROJECT_ROOT @[email protected]/repositories 
    SetEnv GIT_HTTP_EXPORT_ALL 
    SetEnv GITOLITE_HTTP_HOME @[email protected] 
    ScriptAlias /hgit/ @[email protected]/sbin/gitolite-shell/ # <=== will call gitolite 
    SetEnv GIT_HTTP_BACKEND "@[email protected]/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

@ desarrolla2而不是簡單地刪除斷開的鏈接,我更願意恢復它,並添加一個使用LDAP + gitolite來管理git repos的具體示例。 – VonC