0

我想通过 Solace 使用 Basic Auth 对某个主题的所有 MQTT 订阅者进行身份验证。(用户名和密码) 。但希望发布者无需身份验证即可发送到该主题。

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

4

2 回答 2

1

Solace VMR 上的每个 Message VPN 仅支持一种类型的身份验证。您的用例似乎需要支持“无”的基本身份验证类型以及“内部”。

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

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

于 2016-09-08T15:51:45.733 回答
0

这里的问题是Authentication 和 Authorization之间的区别。

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

发布/订阅主题的授权发生在该客户端尝试发布或订阅时,并且基于经过身份验证的用户。

于 2016-09-07T14:35:03.993 回答