【问题标题】:gitweb and per project http authenticationgitweb 和每个项目的 http 身份验证
【发布时间】:2012-12-31 09:20:30
【问题描述】:

我已经成功地在所有经过身份验证的用户都可以访问的 apache vHost 上设置了 gitweb。

服务器本身通过 https 提供多个 git 存储库,并且每个用户/组都可以访问这些项目。例如 test1.git 只能被 test1 组读写,而 test2.git 只能被 test2 组读写。

现在我还希望只有这些组可以在 gitweb 界面中看到他们相应的 git 存储库。是否有可能对 gitweb 拥有这些细粒度的访问权限?

如果没有,是否有用于 git 的轻量级 web gui,可以处理每个项目的基本 http 身份验证(以及以后可能的 ldap 身份验证)?

编辑 只是为了让事情更清楚(因为 cmets 似乎有些混乱): 示例:

  • 有 10 个存储库(test1、test2、... test10)

  • 用户 lockdoc 在组 test1test3

  • 一旦使用用户名 lockdoc 和他/她的密码通过 http 进行身份验证,此用户只能看到 git 项目 test1test3并且无法浏览/查看任何其他项目

  • 无需在 Web 界面上写入(推送),因为这已经实现了

【问题讨论】:

  • 你想要一个简单的、只读你的仓库的视图(在这种情况下 GitWeb 是合适的)还是你想要管理仓库(在这种情况下 gitolite @VonC 的回答是一个选项)?
  • 顺便说一句,我认为这个问题更适合Server Fault Stack。
  • 您可以尝试在需要不同身份验证设置(文件、方法等)的不同<Location><LocationMatch> 部分中匹配不同的URL。
  • 我确认,根据您的编辑,gitolite 是适合这项工作的工具。我已经用更多细节编辑了我的答案。

标签: git apache gitweb


【解决方案1】:

没有 GUI,但我建议对这种细粒度的 authorization 使用 gitolite

看到这个httpd.conf for LDAP and gitolite access

  • 你可以定义一个 gitweb 访问,它又会调用 gitolite,参见这个gitweb.conf.pl 脚本
  • 您可以定义一个https access,它也将调用 gitolite(以允许或拒绝访问,具体取决于您的 id)

https 配置如下所示:

ScriptAlias /hgit/ @H@/sbin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
<Location /hgit>
   ...
</Location>

在这两种情况下,您都可以使用基于 LDAP 的身份验证来保护这些 http 地址:

AuthName "LDAP authentication for ITSVC Smart HTTP Git repositories"
AuthType Basic
AuthBasicProvider myldap companyldap
AuthzLDAPAuthoritative Off
Require valid-user

您将在与 gitolite 关联的gitolite.conf configuration file 中注册您的用户/组/存储库。

@lockdoc_repos           =   test1 test3 # group of repo

repo @lockdoc_repos
    R                    = lockdoc # read-only access for lockdoc
    R                    = gitweb daemon # can be browsed   

请参阅“testing/info/refs not found in gitolite after removing R @all rule”了解更多关于如何允许浏览回购的信息,作者为 gitolite 本人的创建者 sitaram (Sitaram Chamarty)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多