Использование и защита rabbitmq mqtt websocket и использование его в браузере - PullRequest
0 голосов
/ 29 октября 2019

Нам нужно несколько асинхронных рабочих для выполнения 1-2 минутных задач, а затем предоставить обратную связь с пользователями от этих задач.

Идея состоит в том, чтобы использовать плагин rabbitmq mqtt websocket и предоставлять обратную связь с пользователем, когда вычисления выполняются непосредственно в браузере.

Для нашего "старого" стека у нас есть некоторые конечные точки API в качествеслой между пользователем (браузером) и сервисами rabbitmq, которые более или менее действуют как огонь и забывают.

Как уже упоминалось, теперь нам нужно предоставить обратную связь, где мы думали, что это будет создано для пользовательских веб-сокетов (плагин rabbitmq mqtt).

Но нам интересно, как мы можем защитить открытую конечную точку веб-сокета для каждого пользователя? В настоящее время это не проблема, так как у нас есть клиенты amqps с X.509.

Наши новые функции нуждаются в общедоступном доступе, поэтому мы не можем заранее авторизовать пользователя.

Существует ли способ прямого и безопасного использования открытой конечной точки или нам нужен промежуточный слой, когда мыесть сейчас?

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Если вы используете подключаемый источник аутентификации (извините, не знаком с тем, что предлагает RabbitMQ здесь), например, который хранит имя пользователя / пароль в базе данных. Затем вы можете создать кратковременный набор учетных данных для каждого сеанса, а веб-страница может запросить их с сервера через API REST, а затем использовать их для проверки подлинности соединения MQTT через WebSockets.

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

0 голосов
/ 29 октября 2019

Плагин RabbitMQ Web MQTT поддерживает TLS. Затем вы можете использовать имя пользователя / пароль для аутентификации пользователя или использовать клиентские сертификаты.

Если вам нужен публичный доступ, тогда нет способа защитить конечную точку. Это относится ко всем брокерам MQTT, а не только к RabbitMQ.


ПРИМЕЧАНИЕ: команда RabbitMQ контролирует список рассылки rabbitmq-users и только иногдаотвечает на вопросы по StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...