Проверка подлинности на основе ключа Rabbitmq
Предыстория: я очень новичок в RabbitMq, я просто установил его и попытался поиграть с ним.
Итак, у меня есть RabbitMq, работающий на ec2(ubuntu), и сервер node.js в качестве клиента RabbitMq, работающий на локальной машине (для публикации / подписки через web-сокеты), также я включил протокол MQTT на RabbitMq, чтобы он работал на порту 1883
С помощью node.js я использовал MQTTClient. Но когда сервер node.js подключается к RabbitMq, возникает ошибка. Отказ в соединении: неверное имя пользователя или пароль
Я планирую использовать аутентификацию на основе ключей для сервера RabbitMQ, чтобы веб-сокеты из браузера отправляли зашифрованную строку, который сервер node.js декодирует, получает KEY и отправляет этот KEY в RabbitMQ, а затем RabbitMQ решает, существует это или нет.
Я нашел другой плагин Great RabbitMQ, https://github.com/simonmacmullen/rabbitmq-auth-backend-http, но здесь запрашивается имя пользователя / пароль, который может быть комбинацией Key / Id.
Я ищу предложения, как мне этого добиться?
Также еще одна проблема заключается в том, что ни один клиент node.js не отправляет имя пользователя / пароль, так значит ли это, что я должен написать и клиент node.js?
1 ответ
Кажется, что MQTT-клиент поддерживает имя пользователя и пароль, попробуйте установить их в объекте параметров, который вы передаете при создании соединения. Пользователь RabbitMQ по умолчанию guest
с паролем guest
,
Я не понимаю, почему вы используете RabbitMQ в качестве серверной части аутентификации, так как это очередь сообщений, а не хранилище идентификаторов. Упомянутый плагин auth, кажется, позволяет вам использовать другой HTTP-сервер для аутентификации клиентов в RabbitMQ, но не позволяет RabbitMQ обрабатывать управление идентификацией.