Mosquitto предотвращает дублирование входа в систему

#mqtt #mosquitto

#mqtt #mosquitto

Вопрос:

Я хочу запретить пользователю дублировать вход в систему.

В настоящее время я использую mosquitto с подписью разных PKI для каждого клиента, но даже если я включу allow_annonymous флажок off, пользователь все равно может подключиться к серверу mosquitto без имени пользователя и пароля. (Таким образом, пользователь может дублировать вход в систему с помощью одного PKI)

Есть ли способ гарантировать, что PKI может входить в систему только за один сеанс? Установлен ли файл имени пользователя / пароля, который может предотвратить дублирование входа в систему? Или другой способ отключить дублирование входа в систему?

Спасибо

Ответ №1:

Нет, нет способа ограничить количество подключений на основе имени пользователя (или сертификата cn)

Лучшее, что вы могли бы сделать, это убедиться, что каждый пользователь использует одно и то же client_id , поскольку разрешено только при подключении client_id , когда вторая попытка подключения отключит первую

Комментарии:

1. Спасибо @hardillb, я только что придумал странное комбинированное решение, используя require_certificate флаг and use_identity_as_username и use_username_as_clientid three. Поскольку mosquitto не может войти в систему с тем же идентификатором клиента, старое соединение будет закрыто. Это самое близкое решение для меня сейчас. Как вы думаете, здесь есть какие-то ошибки?

2. хм, я пропустил use_username_as_clientid . Это должно сработать

3. Да: D. Кстати, вы знаете, как изменить механизм дублирования клиента? После изменения этих настроек, если у меня есть два клиента, использующих один и тот же PKI, то два клиента будут повторно выбивать другой. Есть ли какой-либо флаг для изменения этого, чтобы последнее соединение завершилось с ошибкой, а не выгнало первое?

4. Нет, это невозможно изменить

5. Должен ли я создать новый вопрос или приведенный выше вопрос здесь в порядке?