【问题标题】:No security on TFS+Git Service?TFS+Git 服务没有安全性?
【发布时间】:2013-05-15 19:07:16
【问题描述】:

(见下文更新)

我正在评估 Team Foundation Service 并观察到一个有点奇怪的行为。由于我了解 TFS+Git 存储库是私有的 - 我想看看如何管理安全性。

所以我更改了我的 Visual Studio 2012 Git 设置以使用“假”用户 - 我没有被要求输入任何密码 - 见下文:

之后,我添加了一些“fake.txt”文件,提交更改并将它们推送到服务器存储库。

令我惊讶的是 - 服务器允许我这样做 - 现在这个“假用户”提交实际上出现在我的 TFS 存储库中:

在任何阶段都没有要求我输入密码。 我究竟做错了什么?还是 TFS 服务根本没有安全保障?

谢谢你, 鲍里斯。

更新:这是我目前发现的:

  • 正如 Nathan 解释的那样,Git 设置中描述的用户/电子邮件与实际进行身份验证的用户无关。
  • VS2012 后台使用 IE,以便通过 TF 服务进行身份验证。因此,如果有任何运行的 IE 实例已经过身份验证(或者如果它是“记住我”自动身份验证的) - 这就是将使用的身份验证。恕我直言,这很丑陋,但我可以忍受。
  • 比这更糟糕 - 您还需要在“配置团队项目”对话框中注销(有时会隐藏,当通过控制面板的“管理凭据”功能管理登录时 - 请参阅此处How can I change the default credentials used to connect to Visual Studio Online (TFSPreview) when loading Visual Studio up?)。仍然很丑,但我也可以忍受。

所以对于最初的问题 - 我找到了某种解决方案。

但是,仍然是个谜,没有办法弄清楚那个“假用户”到底是谁。换句话说,以下工作流程似乎是当前的标准:

  • 以“RealUser”身份登录,这将通过 IE 或 GitHub 客户端进行良好的身份验证
  • 更改您的详细信息,让您成为“FakeUser”
  • “对 repo 中的文件做坏事” > 提交 > 推送
  • TF 服务将接受更改(因为您已通过“RealUser”身份验证)
  • 但是 repo 中的损坏将显示为“FakeUser”所做的,我找不到任何 UI/命令来“提取”进行更改的真正经过身份验证的用户(请参见上面的屏幕截图,来自 TFS Web UI - 没有提及我的真实身份验证用户名/liveID)。

有趣的是,GitHub 的行为几乎相同,但有一些复杂的解决方法——你可以找到你的合作者,选择每个合作者,然后检查合作者的活动——你会在那里看到“假”推送操作。 github 甚至在此处正式承认了这种易于模仿:https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user

所以考虑到以上所有 - 我现在的问题是:

真的没有办法防止/检测 TF 服务中的恶意/意外用户冒充吗?

【问题讨论】:

    标签: git github azure-devops


    【解决方案1】:

    当您连接到 TF 服务器并克隆 repo 时,系统会要求您输入用户名和密码。用户名和密码被缓存。实际上,您可以通过设置 user.name 和 user.email 设置(这是您显示的 UI 正在执行的操作)对任何 git 存储库执行此操作。 git 的提交用户名实际上与访问 git 服务的安全性不同——这就是你可以做你所做的事情的原因。

    请放心,服务器使用您的 TFS 凭据进行保护。

    【讨论】:

    • 谢谢,但是 - 如何更改我真实、安全的登录凭据(例如,如果我确实想使用真实但不同的用户名连接)?
    • 扩展 Git 部分:Git 没有内置任何身份验证或授权机制。任何有物理访问权限的人都可以对其进行推送和拉取。服务器是添加了一个身份验证层,它与 Git 的内部提交属性设置完全分开。
    【解决方案2】:

    经过数小时的挖掘 - 我找到了一些可以接受的解决方案:

    • 将浏览器导航到存储库 > 代码 > 提交
    • 选择相关的提交并展开“FakeUser”创作附近的箭头:

    • 瞧!显示真正的“推动者”用户名

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 2012-07-29
      • 2010-12-03
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 2012-02-13
      • 2020-11-29
      相关资源
      最近更新 更多