跳至主要内容
版本: 4.0

已验证的用户 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 属性,并假设它已在上游代理中得到验证。

© 2024 RabbitMQ. All rights reserved.