仅验证 Solace MQTT 服务中的订阅者

Authenticating only subscribers in Solace MQTT service

我想使用 Basic Auth 对 Solace 主题的所有 MQTT 订阅者进行身份验证。 (用户名和密码) 。但是希望发布者在没有身份验证的情况下发送到该主题。

我配置了基本身份验证。和 ACL 在 VPN 上,但它希望我的订阅者和发布者都使用 username/password。这是否可以通过任何配置允许任何人轻松地发布到主题但只有经过身份验证的用户才能订阅和收听该主题?

这里的问题是Authentication and Authorisation.

之间的区别

MQTT 在客户端连接时对用户进行身份验证,然后再订阅或发布任何消息。

当客户端随后尝试发布或订阅时,就会对主题进行 publish/subscribe 授权,并且是基于经过身份验证的用户。

Solace VMR 上的每个 Message VPN 仅支持一种类型的身份验证。您的用例似乎需要支持 "None" 和 "Internal" 的基本身份验证类型。

实现此目的的一种方法是创建两个 Message VPN,其中第一个使用 "None" 类型的基本身份验证并允许任何人在不需要密码的情况下发布消息,另一个 Message VPN 使用"Internal" 身份验证类型,用户必须使用配置的用户名和密码进行身份验证才能订阅。您可以在两个 Message VPN 之间设置 Message VPN 网桥,这将允许将在一个 Message VPN 中发布的消息传送到另一个 Message VPN。

为了增加安全性,您可以使用 "None" 身份验证在 Message VPN 中配置 ACL 配置文件以禁止所有订阅。这将防止订阅用户直接连接到此 Message VPN,而无需使用用户名和密码进行身份验证。