英文:
Client authorization Mosquitto?
问题
我们希望通过Mosquitto
MQTT代理来实现特定的授权检查:
-
客户端证书的
SAN(主题替代名称)
应包含传入MQTT请求的clientID
。 -
客户端只能订阅包含其
clientID
的主题,即主题授权。 -
只有已知的
clientID
才能订阅通配符主题。
这些是否可以通过配置更改而不更改Mosquitto
代码来实现?
英文:
We want to achieve certain Authorization checks using Mosquitto
MQTT Broker:
-
The
SAN (Subject Alt Name)
of the client certificate shall contain theclientID
of the incoming MQTT request. -
A client shall be able to subscribe only those topics which contain it's
clientID
i.e Topic Authorization. -
Only known
clientID's
shall be able to subscribe to wildcard topics.
Can these be achieved with configuration changes without changing Mosquitto
code ?
答案1
得分: 1
-
如果同时使用
use_identity_as_username
和use_username_as_clientid
,您可以将CN(注意不是SAN)用作用户名和客户端ID。 -
这将取决于主题结构的一些因素,但您可以使用
%c
模式构建一个ACL条目,它将匹配以客户端ID开头的所有主题,例如%c/#
将允许所有以客户端ID开头的主题。 -
ACL是由用户名而不是客户端ID控制的,但考虑到1.两者应该相同,所以在默认选项下应该是可能的。
英文:
-
If you combine both
use_identity_as_username
anduse_username_as_clientid
you can use the CN (note not the SAN) as both the username and client id. -
That will depend a little on the topic structure, but you can probably use the
%c
pattern to build a ACL entry that will match e.g.%c/#
will allow all topics starting with the client id -
The ACLs are controlled by username not client id, but given 1. both should be the same so again this should be possible with the default options.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论