(见下面的更新)
我正在评估 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 服务中的恶意/意外用户冒充吗?