2016-12-08 9 views
0

Я хотел бы знать, как я могу управлять безопасностью для клиентского приложения (веб-приложения) в Watson IOT.
Чтобы отправить сообщение MQTT на устройства, я должен использовать Ключи API приложений. Поскольку мы не можем назначить право на безопасность на основе имени пользователя/пароля (например, доступ на чтение/запись к теме/user1), как стандартный брокер MQTT, как я могу защитить пользователя от отправки команд на несанкционированные устройства?Watson bluemix iot - Защита приложения на стороне клиента

Я пытаюсь сделать что-то похожее на это: StackOverflow - Amazon Client Side Application

ответ

1

Если вы хотите ограничить пользователя в некоторых устройствах, вы можете отобразить пользователю ключа API. Затем вы можете создать логику авторизации в своем приложении javascript.

Например, на основе ключа API:

  • подписаться на определенные темы событий «КАТО-2/тип/device_type/ID/device_id/ЭВТ/event_id/FMT/format_string "
  • подписаться на определенные темы команды" ИТН-2/типа/DEVICE_TYPE/ID/device_id/CMD/command_id/FMT/format_string "
  • публиковать только на определенные темы команды "КАТО-2/тип/device_type/ID/device_id/CMD/command_id/FMT/format_string"
+0

Мой код будет иметь логику авторизации, поэтому пользователь может отправлять команду только определенному устройству. Проблема в том, что если кто-то получит доступ к ключу API (просмотрев код или распакуя мобильное приложение), он может отправить команду на любые устройства. Но он не может этого сделать с примера выше из Amazon AWS. – rick07

+0

Извините, я неправильно понял ваш вопрос. Вы не хотите жестко кодировать какие-либо учетные данные (ключ/токен API). Вам понадобится –

+0

.. Чтобы получить учетные данные, вам потребуется использовать внешний серверный сервис –