如何使用 VSTS 基于服务器的任务验证消息发布者到服务总线?
How to verify the publisher of a message to a service bus using VSTS server-based task?
我想使用 Publish To Azure Service Bus VSTS server task and verify on the recipient side the VSTS user, project and account from which the published message originated. According to task.json 相关信息正在 posted 到服务总线上,但出于我的目的,这是不安全的,因为我想保护自己免受客户端欺骗信息。多个不同的 VSTS 用户、项目和帐户将使用该任务。一旦任务的客户端具有 post 到服务总线的凭据,她就可以欺骗数据。
VSTS 是否提供消息发布者的防篡改身份设置?该消息具有 auth token,但它似乎有不同的用途:它用于向 VSTS 进行身份验证并且其中没有身份声明。
您可以在消息正文中包含必要的信息,否则,您需要自定义发布任务。
{"requestUserId":"$(Release.RequestedForId)","requestUser":"$(Release.RequestedFor)"}
正如 Aseem Bansal 所指出的,The Publish To Azure Service Bus
VSTS 服务器任务有一个新功能:Signing properties
。可以提供一个 Certificate Variable
,它是发送方(VSTS 扩展)和接收方(服务使用来自服务总线的消息)之间的共享秘密。此类变量的值应保持为 secret variable。这解决了这个问题,因为可以通过检查服务总线消息中是否存在共享机密来阻止任何欺骗尝试(接收方必须保留发送方应该知道哪些机密的映射)。谁知道秘密的范围可以由谁可以查看 VSTS build/release 定义秘密变量并从给定定义提交 builds/releases 来控制。我相信 VSTS 对它有相当细粒度的控制,达到特定用户的级别。
我想使用 Publish To Azure Service Bus VSTS server task and verify on the recipient side the VSTS user, project and account from which the published message originated. According to task.json 相关信息正在 posted 到服务总线上,但出于我的目的,这是不安全的,因为我想保护自己免受客户端欺骗信息。多个不同的 VSTS 用户、项目和帐户将使用该任务。一旦任务的客户端具有 post 到服务总线的凭据,她就可以欺骗数据。
VSTS 是否提供消息发布者的防篡改身份设置?该消息具有 auth token,但它似乎有不同的用途:它用于向 VSTS 进行身份验证并且其中没有身份声明。
您可以在消息正文中包含必要的信息,否则,您需要自定义发布任务。
{"requestUserId":"$(Release.RequestedForId)","requestUser":"$(Release.RequestedFor)"}
正如 Aseem Bansal 所指出的,The Publish To Azure Service Bus
VSTS 服务器任务有一个新功能:Signing properties
。可以提供一个 Certificate Variable
,它是发送方(VSTS 扩展)和接收方(服务使用来自服务总线的消息)之间的共享秘密。此类变量的值应保持为 secret variable。这解决了这个问题,因为可以通过检查服务总线消息中是否存在共享机密来阻止任何欺骗尝试(接收方必须保留发送方应该知道哪些机密的映射)。谁知道秘密的范围可以由谁可以查看 VSTS build/release 定义秘密变量并从给定定义提交 builds/releases 来控制。我相信 VSTS 对它有相当细粒度的控制,达到特定用户的级别。