我想说服老板我们应该使用 git 进行版本控制。他说,它绝对必须通过我们的中央 LDAP 服务器对用户进行身份验证。
我研究了各种解决方案(gitweb,gitorious......),但无法找到关于它们是否支持 LDAP 身份验证的明确答案。
我能找到一些信息的唯一解决方案是 Apache+mod_ldap 设置。但这意味着在 LDAP 上进行身份验证的用户不一定与实际的 git 用户相同,对吗?(这不是一个大问题,只是会困扰我。)
那么,通过 LDAP 验证 git 用户的最佳方法是什么?
答案1
虽然密钥用于大多数公共 git 服务,但真正的身份验证是通过 ssh 进行的。SSH 更有能力针对 ldap 进行身份验证。就 git 而言,一旦您有权访问文件,您就可以开始行动了。
更新
Git 现在支持(从今年开始,谁知道呢?)智能 http 推送机制。以前的方式是使用 webdav 服务器,但抓取和推送都非常慢且效率低下。现在,您可以通过 http 获得与 ssh:// 或 git:// 几乎相同的速度。这意味着您可以使用 apache 或 nginx 并使用您想要的任何 http 身份验证方案。(Ldap、数据库等)
更多信息来自pro git 和 github。
答案2
您可以使用预接收 git hooks 脚本来查找/开发 git 后端身份验证。它们不一定是 shell 脚本。
例如,如果你调查gitorious 的预接收钩子,您将看到它使用 Ruby 脚本来验证尝试推送到远程存储库的人。如果您愿意并花一点时间,您可以使用您最喜欢的语言及其 ldap 库来做同样的事情 :-)