【发布时间】: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