TFS客户端是否需要由生成服务器调用工具的本地副本



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

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

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

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

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

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

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

最新更新