2009-10-15 108 views
15

有沒有一種方法可以在git存儲庫上通過ldap授權用戶?或者措辭略有不同:如果他們不在特定的ldap組中,是否有辦法拒絕人們拉/推?Git與ldap授權

編輯: 是的,使用PAM和/或掛鉤的好主意。有沒有人有與pam_ldap結合使用git的經驗?

回答

5

應該工作:

  • 訪問git的回購協議通過SSH使用標準登錄(沒有什麼不尋常這裏)。

  • 使您的git repos具有某個特定組的訪問權限,這些特定的登錄名具有成員資格。

  • 使用pam-ldap使您的標準登錄系統可以使用LDAP。

如果有更具體的方式,即只檢查LDAP,而不會影響系統的其他部分?我不知道,但它可能有一個預先提交鉤子或類似的東西。

+1

pre-commit hook運行客戶端 – 2012-08-10 01:44:30

3

您可以使用updatepre-receivehook要做附加訪問控制;有關示例,請參見contrib/hooks/update-paranoid(採用Perl)(它不使用LDAP,但您可以隨時修改它以使用它,例如使用DBI通過DBD::LDAP來存儲權限配置,或者直接使用Authen::Simple::LDAP)。

這可能是能夠提高工具,例如像gitosis(在Python)或gitolite,其用於通過SSH訪問git倉庫,而不需要對設置(可能是有限的)單獨的外殼帳戶對於每個用戶,使用LDAP進行認證。

1

你可能想用Craig Andrews LDAP插件來看看Gitorious。

Gitorious是一個備受推崇的(開源)解決方案,適用於企業環境,提供對存儲庫的Web和SSH訪問。

Craig添加到代碼庫使得LDAP成爲授權和認證的來源。

https://gitorious.org

https://gitorious.org/gitorious/mainline/merge_requests/138 < - 合併在LDAP支持

希望的代碼將被合併到Gitorious的主線很快,所以我們不會有修補它自己。

2

的簡單的解決方案我已經經歷如下:

  1. 設置CentrifyDC Express爲您提供PAM-LDAP;
  2. 訪問您的GIT repositories via SSH

etvoilà!

+1

或**另外**,您可以設置[基於PAM的HTTP/S](http://icephoenix.us/linuxunix/apache-and-http-authentication隨pam /)訪問您的[GIT回購](http://git-scm.com/book/en/Git-on-the-Server-The-Protocols#The-HTTP/S-Protocol)。 – rdarrudas 2013-11-26 07:15:14