1

假设有一个 TFS 服务器,其中安装了某种 WF 构建活动。例如,这只是一个示例,假设活动获取构建输出,解密存储在服务器上某处的凭据,并执行需要解密凭据的操作:它可能通过网络将构建输出的副本发送给某些人客户端无法直接访问的计算机。

TFS 客户端是否需要具有执行该操作的构建活动的本地副本?还是他们只是将代码更改推送到服务器,让 TFS 服务器决定如何构建代码以及如何处理构建输出?还是客户对 TFS 用于构建代码的工具以及它在构建输出上执行的操作有一些控制权?回到我提供的示例,如果用户需要为构建后操作提供凭据,那么活动的实施者负责确保凭据在从客户端传输到服务器时得到适当保护,或者TFS 照顾那个?

4

2 回答 2

0

创建后,您可以将 Team Build Custom Build Activities 放在源代码控制中的自定义二进制文件中,并配置 Build Controller 的自定义二进制路径。然后,当执行此类构建时,TFS 将自动获取二进制文件。

至于安全地为构建提供凭据,TFS 不会帮助您。尽管可以使用 SSL(在 TFS 服务器上配置 SSL 安全性)来保护与 TFS 的通信,但构建参数也以纯文本格式存储在 TSF 数据库中。

您的自定义活动和用于编辑值的设计器可以提供某种形式的值加密,这将确保它们不是存储在服务器数据库中的纯文本,但您可能必须为此使用静态密钥去工作。

最好的解决方案是在您之后的用户凭据下运行构建代理,这样构建代理本身就具有适当的权限,并且不会通过线路传输任何凭据或机密,因为构建代理将使用 NTLM 或 Kerberos进行身份验证。

于 2013-12-13T20:24:04.920 回答
0

构建发生在构建服务器上(安装了 TFS 构建代理)。任何自定义活动都会签入 TFS,并在 Build Controller 属性中告诉它该目录在哪里。构建控制器确保该目录中的所有程序集都作为构建过程的一部分下载到每个构建代理。

于 2013-12-13T20:24:17.610 回答