有沒有一種方法可以在git存儲庫上通過ldap授權用戶?或者措辭略有不同:如果他們不在特定的ldap組中,是否有辦法拒絕人們拉/推?Git與ldap授權
編輯: 是的,使用PAM和/或掛鉤的好主意。有沒有人有與pam_ldap結合使用git的經驗?
有沒有一種方法可以在git存儲庫上通過ldap授權用戶?或者措辭略有不同:如果他們不在特定的ldap組中,是否有辦法拒絕人們拉/推?Git與ldap授權
編輯: 是的,使用PAM和/或掛鉤的好主意。有沒有人有與pam_ldap結合使用git的經驗?
應該工作:
訪問git的回購協議通過SSH使用標準登錄(沒有什麼不尋常這裏)。
使您的git repos具有某個特定組的訪問權限,這些特定的登錄名具有成員資格。
使用pam-ldap使您的標準登錄系統可以使用LDAP。
如果有更具體的方式,即只檢查LDAP,而不會影響系統的其他部分?我不知道,但它可能有一個預先提交鉤子或類似的東西。
您可以使用update
或pre-receive
hook要做附加訪問控制;有關示例,請參見contrib/hooks/
的update-paranoid(採用Perl)(它不使用LDAP,但您可以隨時修改它以使用它,例如使用DBI通過DBD::LDAP來存儲權限配置,或者直接使用Authen::Simple::LDAP)。
這可能是能夠提高工具,例如像gitosis(在Python)或gitolite,其用於通過SSH訪問git倉庫,而不需要對設置(可能是有限的)單獨的外殼帳戶對於每個用戶,使用LDAP進行認證。
你可能想用Craig Andrews LDAP插件來看看Gitorious。
Gitorious是一個備受推崇的(開源)解決方案,適用於企業環境,提供對存儲庫的Web和SSH訪問。
Craig添加到代碼庫使得LDAP成爲授權和認證的來源。
https://gitorious.org/gitorious/mainline/merge_requests/138 < - 合併在LDAP支持
希望的代碼將被合併到Gitorious的主線很快,所以我們不會有修補它自己。
一個可能的解決方案是使用git而不是smart-http。如果你使用這個協議,你可以設置你的Apache server to authenticate through LDAP,然後讓你的git通過http傳輸數據。
或**另外**,您可以設置[基於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
pre-commit hook運行客戶端 – 2012-08-10 01:44:30