Назад | Перейти на главную страницу

Аутентификация встроенных устройств для отправки push-уведомлений с помощью Amazon SNS

Я разрабатываю платформу, на которой большое количество встроенных устройств с поддержкой облака будет отправлять push-уведомления в мобильные приложения с помощью Amazon SNS.

Каждое встроенное устройство должно создать тему SNS и публиковать ее в этой теме. Пользователи зарегистрируются в теме и получат эти уведомления.

У меня вопрос: как встроенные устройства должны обрабатывать аутентификацию / авторизацию с помощью AWS, чтобы создавать темы и публиковать уведомления. Вот варианты, которые я рассмотрел до сих пор:

Какие еще у меня есть варианты? Уверен, что я не первый, кто столкнулся с этой проблемой.

Вы можете сделать что-то вроде этого:

Предварительные условия и настройка:

  1. Установите Javascript SDK на ваше встроенное устройство (поскольку вы не упомянули ограничения устройства, эта архитектура предполагает, что ваше устройство достаточно способно запускать Javascript SDK)
  2. Создайте `` пул пользователей '' в Cognito (с помощью консоли AWS или API, интерфейса командной строки и т. Д.)
  3. В рамках начальной настройки устройства зарегистрируйте нового пользователя для каждого устройства, используя уникальные атрибуты, соответствующие вашей архитектуре, целевой аудитории приложения и бизнес-модели.

Процесс аутентификации:

  1. Когда вы хотите отправить новое сообщение в социальную сеть, происходит следующее:
  2. Ваше приложение (на встроенном устройстве) инициирует безопасную удаленную аутентификацию по паролю с помощью Cognito (конечно, с помощью методов SDK)
  3. Если запрос аутентификации завершается успешно, Cognito отвечает токеном.
  4. Ваше приложение использует токен и вызывает конечную точку POST, предоставленную шлюзом API, и аутентифицируется с помощью token получено на шаге 3
  5. В token используется для аутентификации по «пулу пользователей» в Cognito, чтобы проверить, поступил ли запрос с подлинного устройства.
  6. Если запрос аутентификации завершается успешно, шлюз API вызывает лямбда-функцию, к которой прикреплена соответствующая роль IAM, эта роль IAM по существу позволяет публиковать сообщения в темах SNS.
  7. Лямбда-функция публикует сообщение в желаемой теме SNS. Поскольку вы упомянули, что каждое устройство будет публиковать в своей теме SNS, информация о теме SNS может храниться в полях метаданных пользователя в Cognito.