使用LDAP作为git存储库的身份验证方法


15

我想说服老板,我们应该使用git进行版本控制。他说,它绝对必须通过我们的中央LDAP服务器对用户进行身份验证。

我查看了各种解决方案(gitweb,gitorious ...),但找不到关于它们是否支持LDAP身份验证的确切答案。

我唯一可以找到一些信息的解决方案是Apache + mod_ldap设置。但这意味着在LDAP上进行身份验证的用户不一定与实际的git用户相同,对吗?(并不是说这是一个大问题,而只是会让我烦恼的事情。)

那么,通过LDAP验证git用户的最佳方法是什么?


1
我在http auth上添加了更多信息。
reconbot

Answers:


8

虽然密钥用于大多数公共git服务,但真正的身份验证是通过ssh进行的。SSH则更具有针对ldap进行身份验证的能力。就git而言,一旦您有权访问文件,就可以去镇上。

更新

Git现在支持(到今年为止,谁知道?)一个聪明的http推送机制。旧的方法是使用webdav服务器,但是获取和推送都非常缓慢且效率低下。现在您可以通过http获得与ssh://或git://几乎相同的速度。这意味着您可以使用apache或nginx并使用任何您想要的http auth方案。(Ldap,数据库等)

来自pro git和github的更多信息。


1
如果将SSH配置为使用PAM进行身份验证,则可以毫无问题地针对LDAP服务器进行身份验证。值得注意的例外是Gitosis,它可以通过按键执行一些强制命令魔术。
voretaq7 2010年

遗憾的是,如果没有尚未合并的ssh,就无法从LDAP 获取公钥,ssh 无法实现。它会使用pam-ldap通过LDAP进行密码身份验证,但无法直接查询LDAP来获取公共密钥。非常沮丧。
Craig Ringer

您可以编写脚本,每天从ldap到文件系统加载密钥,并结合使用一种启动它的方法,但是更新密钥可以解决问题。
reconbot

2

您可以使用预接收git hooks脚本查找/开发git后端身份验证。它们不一定必须是shell脚本。

例如,如果您查看令人讨厌的pre-receive hook,那么您将看到它的方式来验证尝试使用Ruby脚本在这种情况下推送到远程仓库的那个家伙。如果您愿意并花一些时间在上面,则可以使用自己喜欢的语言及其ldap库进行相同的操作:-)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.