使用ldap授权的Git

时间:2009-10-15 17:01:22

标签: git authentication ldap

有没有办法通过git存储库上的ldap授权用户?或者措辞略有不同:如果他们不在特定的ldap组中,是否有办法拒绝人们拉/推?

编辑: 是的,使用PAM和/或钩子的好主意。有没有人有将git与pam_ldap结合使用的经验?

5 个答案:

答案 0 :(得分:5)

应该工作:

  • 使用标准登录通过SSH访问git repos(这里没什么不寻常的。)

  • 使您的git repos具有某个组的访问权限,特定登录的成员资格为。

  • 使用pam-ldap使您的标准登录系统与LDAP一起使用。

如果有更具体的方法,那就必须检查ldap而不影响系统的其余部分?我不知道,但它可能是预先提交钩子,或类似的东西。

答案 1 :(得分:3)

您可以使用updatepre-receive hook来执行其他访问控制;请参阅contrib/hooks/中的update-paranoid(在Perl中)以获取示例(它不使用LDAP,但您可以随时修改它以使用它,例如使用DBI通过DBD::LDAP来存储权限配置,或直接Authen::Simple::LDAP

有可能增强gitosis(在Python中)或gitolite等工具,这些工具用于通过SSH访问git存储库,而无需设置(可能是有限的)单独的shell帐户每个用户,使用LDAP进行身份验证。

答案 2 :(得分:2)

我遇到的直接解决方案如下:

  1. 设置CentrifyDC Express为您提供pam-ldap;
  2. 访问您的GIT repositories via SSH
  3. Etvoilà!

答案 3 :(得分:1)

您可能希望通过Craig Andrews LDAP插件查看Gitorious。

Gitorious是一个备受推崇的(开源)解决方案,适用于提供对存储库的Web和SSH访问的企业环境。

Craig对代码库的补充使LDAP成为授权和身份验证的源。

https://gitorious.org

https://gitorious.org/gitorious/mainline/merge_requests/138< - LDAP支持中的合并

希望代码很快就会合并到Gitorious的主线上,所以我们不必自己修补它。

答案 4 :(得分:0)

一种可能的解决方案是使用git而不是smart-http。如果您使用此协议,则可以设置Apache server to authenticate through LDAP,然后让您的git通过http传输数据。