Есть ли какие-либо советы по вводу имени пользователя и пароля подключенным клиентом в MQTT? особенно комар

Я новичок в mqtt, я пытаюсь создать что-то для аутентификации издателя и подписчика только по их имени пользователя и паролю (поэтому конфигурация mqtt для разрешения анонимности верна). Если они оба (издатель и подписчик) имеют одинаковый логин-пароль, данные формы издателя будут отправлены подписчику. Сделав это, нам не нужно было устанавливать новое имя пользователя и пароль в нашем брокере mqtt.

Итак, мне нужно что-то, что поможет мне получить имя пользователя и пароль от издателя и подписчика. Я работаю с linux и языками go. Помощь с этим условием будет очень полезна. Спасибо


person Isollaa    schedule 02.10.2019    source источник
comment
Здравствуйте, не понятно о чем вы спрашиваете. Также неясно, какова связь между Mosquitto, который представляет собой реализацию протокола MQTT на C, и Go. Я предлагаю взглянуть на stackoverflow.com/help/how-to-ask и соответствующим образом отредактировать свой вопрос, чтобы мы могли лучше понять это.   -  person marco.m    schedule 02.10.2019


Ответы (1)


Mosquitto имеет подключаемый модуль аутентификации API, который можно использовать для аутентификации и авторизации клиентов. Вы можете использовать это для проверки имени пользователя/пароля пользователей, а также для хранения ACL, который контролирует, какие темы пользователь и публиковать/подписываться.

При этом обычный механизм аутентификации MQTT работает, контролируя доступ к темам. Данное использование может иметь доступ на чтение (подписчик), запись (издатель) или оба доступа к теме (или шаблону темы).

Это означает, что ACL применяется во время подписки или публикации, а не во время определения того, следует ли передавать сообщение конкретному клиенту.

Вы можете добиться того, чего хотите, добавив к любой теме префикс имени пользователя, например.

пользователь foo всегда публиковал сообщения на foo/... и мог подписаться на foo/#

Схема mosquitto ACL имеет встроенную поддержку замены имени пользователя в шаблоне темы, поэтому вы можете делать такие вещи, как:

pattern readwrite %u/# 
person hardillb    schedule 02.10.2019
comment
О, вау.. Этот плагин может быть тем, что мне действительно нужно, я вижу функцию mosquitto_auth_unpwd_check, и, возможно, я могу отредактировать ее, чтобы получить значение имени пользователя и пароля. Но можете ли вы объяснить, как использовать этот плагин? Что-то вроде мне нужно что-то установить в первую очередь? тогда где я должен поместить этот код и как запустить этот код? В любом случае спасибо за ваш ответ - person Isollaa; 03.10.2019
comment
Если вы ищете, есть примеры плагинов - person hardillb; 03.10.2019