Создает ли пользовательский авторизатор с aws-iot (wss) новое устройство каждый раз, когда устройство подключается и отправляет данные?
Учитывая, что существует множество мобильных устройств (Android и iOS), которые должны отправлять данные в AWS-IoT через пользовательский авторизатор MQTT, чтобы проверить действительный токен на основе бизнес-логики, необходимо реализовать.
Что касается приложений IoT с AWS IoT и Websockets, на слайде 56/60 показан процесс регистрации, где лямбда-код используется для создания и присоединения политики.
Означает ли это, что lambda создаст новое устройство AWS-IoT и присоединит политику к этому устройству? Что приводит к созданию нового устройства AWS-IoT каждый раз, когда новый пользователь регистрируется?
2 ответа
Обращаясь к разделу " Как использовать свои собственные системы управления учетными данными и доступом для управления доступом к ресурсам IoT AWS", вы можете создать свой собственный авторизатор. Как только это будет сделано, вы можете использовать https://github.com/aws/aws-iot-device-sdk-js, чтобы протестировать авторизатор с помощью этого фрагмента кода.
Использование пользовательского авторизатора не требует создания или регистрации каких-либо вещей в вашей учетной записи.
Вы оплачиваете свои подключения, сообщения и т. Д. В соответствии с ценами IoT в AWS.
Однако это реализация mqtt over wss, а не только реализация mqtt. На данный момент для реализации только mqtt все еще требуются сертификаты при подключении к брокеру AWS-IoT.
Чтобы расширить ответ пользователя 2967920:
- Вам не нужно создавать устройства при использовании AWS IoT Core. AWS Amplify PubSub фактически использует IoT в качестве брокера MQTT общего назначения. Никакие устройства не будут созданы с использованием пользовательского авторизатора*.
- Политика, возвращенная вашим пользовательским авторизатором, не сохраняется. Думайте об этом как о динамической специальной политике, созданной для определенного соединения.
Пример использования AWS IoT на Android и iOS см. в документации AWS Amplify PubSub (внутренне использующей AWS IoT Core). На iOS:
iotDataManager.connectUsingWebSocket(withClientId: uuid,
cleanSession: true,
customAuthorizerName: "<name-of-the-custom-authorizer>",
tokenKeyName: "<key-name-for-the-token>",
tokenValue: "<token>",
tokenSignature: "<signature-of-the-token>",
statusCallback: mqttEventCallback)
*Очевидно, что вы можете создавать устройства в лямбда-функции, если хотите, точно так же, как вы можете использовать любой другой API AWS.