我的问题需要 3 个独立的存储库,这些存储库可以被 AD 组锁定。这些存储库还需要根据公司策略进行物理分离和逻辑分离。我想出的解决方案如下。
首先,我取消了整个“虚拟应用程序”实现,并选择通过使用站点绑定通过主机名创建绑定到机器 IP 地址的新 IIS 网站,将每个实例托管在具有一个 IP 地址的 IIS 上,这样 IIS 就可以解析到适当的实例。因此 - 这需要 3 个内部 DNS 条目。如果在本地工作,您可能会摆脱编辑 LMHost 文件。
例子:
- 实例 1 = git1.domain.com
- 实例 2 = git2.domain.com
- 实例 3 = git3.domain.com
创建这 3 个绑定后,我只需修改 web.config 以使用我们的 AD 组将用户映射到 Teams 的 AD Windows 身份验证。
至于存储库,我将它们放在 Web 应用程序之外的一个完全不同的目录中,并更改了 Bonobo WebApp 中的设置以指向该实例的适当存储库。
例子:
- 实例 1 = 存储库路径:D:\Repositories\Repo1,安全性(ADGroup1,GitAdmin)
- 实例 2 = 存储库路径:D:\Repositories\Repo2,安全性(ADGroup2,GitAdmin)
- 实例 3 = 存储库路径:D:\Repositories\Repo3,安全性(ADGroup3,GitAdmin)
唯一的缺点是我需要管理三个网站而不是一个。我实际上并不担心,因为它完全符合公司政策的要求,即对各种存储库进行物理和逻辑隔离。
也就是说 - 我确实认为该项目的赞助商考虑支持多个存储库路径是明智的,因为这可能在支持多个存储库磁盘位置的组织中更为常见