我想使用Basic Auth对Solace主题的所有MQTT订阅者进行身份验证。 (用户名和密码) 。但是希望发布者在没有身份验证的情况下发送到该主题。
我配置了基本身份验证。和ACL在VPN上,但希望我的订阅者和发布者都使用用户名/密码。这可以通过任何配置实现,以允许任何人发布安慰中的主题,但只有经过身份验证的用户才能订阅和聆听该主题吗?
答案 0 :(得分:1)
Solace VMR上的每个Message VPN仅支持一种类型的身份验证。看来你的用例需要一个基本的身份验证类型"无"以及"内部"得到支持。
实现这一目标的一种方法是创建两个消息VPN,其中第一个使用"无"基本身份验证的类型,允许任何人在不需要密码的情况下发布消息,而另一个消息VPN使用"内部"身份验证类型,用户必须使用配置的用户名和密码进行身份验证才能进行身份验证。您可以在两个消息VPN之间建立消息VPN桥接,这将允许在一个消息VPN中发布的消息传递到另一个消息VPN。
为了增加安全性,您可以使用"无"在消息VPN中配置ACL配置文件。身份验证禁止所有订阅。这将阻止订阅用户直接连接到此Message VPN,而无需使用用户名和密码进行身份验证。
答案 1 :(得分:0)
这里的问题是Authentication and Authorisation之间的区别。
MQTT在订阅或发布任何消息之前,在客户端连接时对用户进行身份验证。
当该客户端尝试发布或订阅并且基于经过身份验证的用户时,将发布/订阅主题的授权。