Встроенный ACL устанавливает правила через файлы, которые просты и легковесны в использовании. Он подходит для проектов с предсказуемым количеством правил, без изменений или с небольшими изменениями требований.
rmqtt-acl
plugins/rmqtt-acl.toml
Совет: встроенный ACL имеет самый низкий приоритет и может быть переопределён плагином ACL. Если вы хотите отключить его, вы можете закомментировать все правила. После изменения файла правил RMQTT Broker необходимо перезапустить, чтобы они вступили в силу.
Встроенные правила ACL имеют самый низкий приоритет. Если после всех проверок ACL не было найдено совпадений, проверяется правило по умолчанию.
Файл правил описан в синтаксисе Toml:
rules = [
# Разрешить пользователям «dashboard» подписываться на темы «$SYS/#»
["allow", { user = "dashboard" }, "subscribe", ["$SYS/#"]],
# Разрешить клиенту с IP-адресом «127.0.0.1» публиковать/подписываться на темы «$SYS/#» или «#»
["allow", { ipaddr = "127.0.0.1" }, "pubsub", ["$SYS/#", "#"]],
# Запретить «Всем пользователям» подписываться на темы «$SYS/#», «#»
["deny", "all", "subscribe", ["$SYS/#", { eq = "#" }]],
# Разрешить любым другим клиентам подключаться и выполнять операции публикации/подписки
["allow", "all"]
]
dashboard
подписываться на тему $SYS/#
, что делает особый случай для третьего правила.127.0.0.1
публиковать / подписываться на темы $SYS/#
или #
, что делает особый случай для третьего правила.$SYS/#
и #
.Можно видеть, что правило по умолчанию в основном ограничивает права клиента на системную тему $SYS/#
и на все подстановочные темы #
.
Правила в файле rmqtt-acl.toml
сопоставляются сверху вниз в порядке написания.
#
.allow
deny
{ user = "dashboard"}
: правило действует только для пользователей, чьё имя пользователя — dashboard{user = "dashboard", password = "123456", superuser = true}
: указывает, что правило действует для пользователей с именем пользователя «dashboard» и паролем «123456»; superuser указывает, что этот пользователь является суперпользователем и будет пропускать аутентификацию при публикации/подписке на сообщения.{clientid = "dashboard"}
: правило действует только для пользователей, чей ClientId — dashboard{ipaddr = "127.0.0.1"}
: правило действует только для пользователей, у которых исходный адрес — «127.0.0.1».{protocol = 4}
: правило действует только для пользователей MQTT версии протокола 4 (3.1.1). Версия протокола MQTT: 3 = 3.1, 4 = 3.1.1 или 5 = 5.0{user = "dashboard", protocol = 4}
: правило действует только для пользователей с именем пользователя «dashboard» и версией протокола MQTT 4 (3.1.1)all
: правило действует для всех пользователей.connect
: правило применяется к операциям CONNECT.publish
: правило применяется к операциям PUBLISH.subscribe
: правило применяется к операциям SUBSCRIBE.pubsub
: правило применяется как к операциям PUBLISH, так и к операциям SUBSCRIBE.all
— правило применяется ко всем операциям (по умолчанию).Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )