0

(见下面的更新)

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

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

在此处输入图像描述

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

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

在此处输入图像描述

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

谢谢你,鲍里斯。

更新:这是我到目前为止发现的:

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

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

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

  • 以“RealUser”身份登录,这将通过 IE 或 GitHub 客户端进行良好的身份验证
  • 更改您的详细信息,以便您成为“FakeUser”
  • “对仓库中的文件做坏事”>提交>推送
  • 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 服务中的恶意/意外用户冒充吗?

4

2 回答 2

1

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

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

    在此处输入图像描述

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

    在此处输入图像描述

于 2013-05-21T13:17:15.513 回答
0

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

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

于 2013-05-21T05:41:02.570 回答