跳至主内容
版本:4.2

已验证的用户 ID

在某些场景下,消费者能够知道发布消息的用户身份会非常有用。

为了实现这一点,RabbitMQ 会验证 user-id 消息属性(如果已设置)。换句话说,如果此属性由发布者设置,则其值必须等于连接用户的名称。

如果未设置 user-id 属性,则发布者的身份将保持私密,并且不会执行任何验证。

示例(Java)

AMQP.BasicProperties properties = new AMQP.BasicProperties();
properties.setUserId("guest");
channel.basicPublish("amq.fanout", "", properties, "test".getBytes());

此消息仅在用户为“guest”时才能成功发布。

额外的身份验证层

如果安全是您非常关心的问题,您可能应该将此功能与 启用 TLS 的连接结合使用,并可能由服务器执行客户端的对等证书链验证。

特殊情况:假冒者标签

有时允许应用程序伪造 user-id 可能会很有用。为了允许这样做,发布用户可以设置其 impersonator 标签。默认情况下,没有用户设置此标签。特别是,administrator 标签不允许这样做。

联邦交互

联邦插件 可以从设置了 user-id 属性的上游传递消息。默认情况下,它会清除此属性(因为它无法知道上游代理是否可信)。如果上游上的 trust-user-id 属性已设置,则它会从上游代理传递 user-id 属性,假定它已在那里得到验证。

© . This site is unofficial and not affiliated with VMware.