#mqtt #mosquitto
#mqtt #mosquitto
Вопрос:
Я хочу запретить пользователю дублировать вход в систему.
В настоящее время я использую mosquitto с подписью разных PKI для каждого клиента, но даже если я включу allow_annonymous
флажок off, пользователь все равно может подключиться к серверу mosquitto без имени пользователя и пароля. (Таким образом, пользователь может дублировать вход в систему с помощью одного PKI)
Есть ли способ гарантировать, что PKI может входить в систему только за один сеанс? Установлен ли файл имени пользователя / пароля, который может предотвратить дублирование входа в систему? Или другой способ отключить дублирование входа в систему?
Спасибо
Ответ №1:
Нет, нет способа ограничить количество подключений на основе имени пользователя (или сертификата cn)
Лучшее, что вы могли бы сделать, это убедиться, что каждый пользователь использует одно и то же client_id
, поскольку разрешено только при подключении client_id
, когда вторая попытка подключения отключит первую
Комментарии:
1. Спасибо @hardillb, я только что придумал странное комбинированное решение, используя
require_certificate
флаг anduse_identity_as_username
иuse_username_as_clientid
three. Поскольку mosquitto не может войти в систему с тем же идентификатором клиента, старое соединение будет закрыто. Это самое близкое решение для меня сейчас. Как вы думаете, здесь есть какие-то ошибки?2. хм, я пропустил
use_username_as_clientid
. Это должно сработать3. Да: D. Кстати, вы знаете, как изменить механизм дублирования клиента? После изменения этих настроек, если у меня есть два клиента, использующих один и тот же PKI, то два клиента будут повторно выбивать другой. Есть ли какой-либо флаг для изменения этого, чтобы последнее соединение завершилось с ошибкой, а не выгнало первое?
4. Нет, это невозможно изменить
5. Должен ли я создать новый вопрос или приведенный выше вопрос здесь в порядке?