有没有办法通过git存储库上的ldap授权用户?或者措辞略有不同:如果他们不在特定的ldap组中,是否有办法拒绝人们拉/推?
编辑: 是的,使用PAM和/或钩子的好主意。有没有人有将git与pam_ldap结合使用的经验?
答案 0 :(得分:5)
应该工作:
使用标准登录通过SSH访问git repos(这里没什么不寻常的。)
使您的git repos具有某个组的访问权限,特定登录的成员资格为。
使用pam-ldap使您的标准登录系统与LDAP一起使用。
如果有更具体的方法,那就必须检查ldap而不影响系统的其余部分?我不知道,但它可能是预先提交钩子,或类似的东西。
答案 1 :(得分:3)
您可以使用update
或pre-receive
hook来执行其他访问控制;请参阅contrib/hooks/
中的update-paranoid(在Perl中)以获取示例(它不使用LDAP,但您可以随时修改它以使用它,例如使用DBI通过DBD::LDAP来存储权限配置,或直接Authen::Simple::LDAP。
有可能增强gitosis(在Python中)或gitolite等工具,这些工具用于通过SSH访问git存储库,而无需设置(可能是有限的)单独的shell帐户每个用户,使用LDAP进行身份验证。
答案 2 :(得分:2)
我遇到的直接解决方案如下:
Etvoilà!
答案 3 :(得分:1)
您可能希望通过Craig Andrews LDAP插件查看Gitorious。
Gitorious是一个备受推崇的(开源)解决方案,适用于提供对存储库的Web和SSH访问的企业环境。
Craig对代码库的补充使LDAP成为授权和身份验证的源。
https://gitorious.org/gitorious/mainline/merge_requests/138< - LDAP支持中的合并
希望代码很快就会合并到Gitorious的主线上,所以我们不必自己修补它。
答案 4 :(得分:0)
一种可能的解决方案是使用git而不是smart-http。如果您使用此协议,则可以设置Apache server to authenticate through LDAP,然后让您的git通过http传输数据。