【问题标题】:Visual Studio 2013 : Connect to TFS with RSA SecurID - Custom Implementation or Configuration?Visual Studio 2013:使用 RSA SecurID 连接到 TFS - 自定义实施或配置?
【发布时间】:2016-07-08 11:54:37
【问题描述】:

情况: 在标准方案中,很容易将与 Visual Studio 内的 TFS 2013 服务器的连接添加到 TFS。 “添加团队基础服务器”对话框非常简单,当您和 TFS 服务器在同一个域中时,它可以正常工作。当你再次打开 VS 时,连接会再次自动建立。

现在我们希望将外部开发人员连接到防火墙后面的 TFS。

问题:

短版:在通过 AD 凭据连接到 TFS 之前,我需要一种机制来输入用户 ID 和密码(通过 NTML 自动发生)。

长版:我们希望使用“反向代理”机制,与 RSA SecurID 硬件密钥结合使用。当开发人员在浏览器中浏览团队项目的 Web 门户时,这可以正常工作。唯一与标准方案不同的是:出现了一个 Web 表单,您必须输入您的 UserId 和 - 不,不是 AD 密码 - SecurID 的密码,6 位数字,它会被更新SecurID 令牌上的每一分钟。这是通过反向代理的 2 因素身份验证。

这在浏览器中可以正常工作,但在 Visual Studio 中却不行(开发人员任务只能在 VS 中执行,例如签出、签入 a.s.o)。所以必须有一个对话框,在 Visual Studio 尝试连接到内部 TFS 之前,您可以在其中输入用户 ID 和密码。但这不是开箱即用的,只是出现一条错误消息,带有 500 HTTP 状态。当然,反向代理机制需要来自 SecurId Key 的这个 userid 和 passphrase,你必须手动输入。

问题: 有没有办法更改或实现自定义加载项或其他任何出现的对话框,我们可以在其中输入用户 ID 和密码?

这必须在两种情况下发生: 首先,当您想通过“添加团队基础服务器”对话框将新的 TFS 添加到您的 TFS 列表时。 其次,当你打开 Visual Studio 并且它想再次连接到这个已经添加的 TFS 时。

自我连接的代码我已经在一个简单的控制台应用程序中,首先将带有用户 ID 和密码的 POST 发送到 TFS(实际上是反向代理身份验证)。一个 cookie 回来了,有了这个 cookie,我可以访问 TFS 的任何 Web 服务,而 VS 也只使用这个 Web 服务。所以我还必须将此 cookie 添加到对 TFS Web 服务的调用中,这意味着必须有一种方法来告诉 Visual Studio TFS“接口”在每个 Web 服务调用中使用这个 cookie。

我搜索了几个小时以寻找是否以及如何可能的提示,所以我希望允许在这里提出这个问题。我检查了自定义源代码控制插件是否会成为这样的钩子,但我相信这种自定义插件中的所有操作都发生在连接之后。我尝试了一个基本的源代码控制插件(来自 VS SDK),它可以工作,我试图捕捉建立连接的方法,这不在这个框架/接口内。

补充说明:我已经在 Microsoft 开了一张 Premier 票,到现在还没有答案。我认为这很特别,我不确定他们是否能找到可以回答这个问题的专家;-)

【问题讨论】:

    标签: c# visual-studio tfs reverse-proxy securid


    【解决方案1】:

    您似乎想在代理服务器后面使用 Visual Studio 2013。代理地址必须在 XML 文件中手动输入:

    1.在%ProgramFiles%\Microsoft Visual Studio 12.0\Common7\IDE(或%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE)中找到devenv.exe.config(devenv.exe配置文件)。

    2.在配置文件中,找到<system.net>块,添加如下代码:

     <defaultProxy enabled="true" useDefaultCredentials="true">
         <proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
     </defaultProxy>
    

    【讨论】:

    • 感谢您的提示。我尝试了每种组合,但它不起作用。主要原因是:反向代理不像内部网络代理那样工作。反向代理 (Forefront TMG)​​ 始终显示一个表单,您必须在其中输入用户 ID 和密码,然后通过 POST 发送。在这种情况下,Visual Studio 无法弹出。有趣的是,如果您在线连接到 VS,则会显示一个对话框以输入 userid/pw。只需尝试在“添加 TFS”处连接到dummy.visualstudio.com,您将看到此对话框。但我不知道是否以及如何使用此功能。
    • 如果您删除存储在您 PC 上的所有凭据,并删除 TFS 服务器,您还将获得一个登录窗口,您想要这个吗?
    • @"Cece - MSTF" 现在我发现了问题所在,我正在寻找解决方案:Visual Studio 通过以下方式联系“Visual Studio Team Services”(以前称为 Visual Studio Online)认证。我们的反向代理使用 Microsoft Forefront Unified Access Gateway (UAG),并且未使用或激活 OAuth。所以我会试试这个。当我成功时,我将发布实施/配置此作为答案的步骤。 MS Forefront 主流支持于 2012 年 11 月结束,扩展支持将于 2020 年结束。这意味着从长远来看,我们必须使用其他产品(可能是 Sophos)
    猜你喜欢
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2013-10-26
    • 2015-05-01
    • 2014-10-11
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多