Mosquitto имеет плагин аутентификации API , который можно использовать для аутентификации и авторизации клиентов. Вы можете использовать это для проверки имени пользователя / паролей пользователей, а также для хранения ACL, который контролирует, на какие темы пользователь и публикует / подписывается.
При этом обычный механизм аутентификации MQTT работает путем контроля доступа к темам. У данного использования может быть чтение (подписчик), запись (издатель) или оба доступа к теме (или шаблону темы).
Это означает, что ACL применяется во время подписки или публикации, а не ввремя определения того, должно ли сообщение быть передано конкретному клиенту.
Вы можете достичь того, что хотите, добавив префикс к любой заданной теме с именем пользователя, например,
пользователь foo всегда будет публиковать сообщения на foo/...
и может подписаться на foo/#
В схему ACL mosquitto встроена поддержка подстановки имени пользователя в шаблон темы, поэтому вы можете делать такие вещи, как:
pattern readwrite %u/#