每次设备连接并发送数据时,是不是使用带有 aws-iot (wss) 的自定义授权方创建一个新设备?

Posted

技术标签:

【中文标题】每次设备连接并发送数据时,是不是使用带有 aws-iot (wss) 的自定义授权方创建一个新设备?【英文标题】:Does using a custom authorizer with aws-iot (wss) create a new device everytime a device connects and sends data?每次设备连接并发送数据时,是否使用带有 aws-iot (wss) 的自定义授权方创建一个新设备? 【发布时间】:2019-06-17 03:50:55 【问题描述】:

考虑到有大量移动设备(androidios)需要通过 MQTT custom authorizer to check for valid token based on business logic 向 AWS-IoT 发送数据,因此需要实施。

参考IoT Apps with AWS IoT and Websockets,幻灯片 56/60 显示了使用 lambda 创建和附加策略的注册过程。

这是否表示 lambda 将创建新的 AWS-IoT 设备并将策略附加到该设备?这会导致每次新用户注册时都会创建新的 AWS-IoT 设备?

【问题讨论】:

【参考方案1】:

参考How to Use Your Own Identity and Access Management Systems to Control Access to AWS IoT Resources ,您可以创建自定义授权者。完成后,您可以使用aws/aws-iot-device-sdk-js 使用this piece of code 来测试授权人。

使用自定义授权者不需要您创建或拥有任何 在您的帐户中注册的内容。

根据 AWS 的物联网定价,您需要为连接、消息等付费。

然而,这是一个 mqtt over wss 实现,而不是一个 mqtt 唯一实现。到目前为止,仅 mqtt 的实现似乎在连接到 AWS-IoT 代理期间仍需要证书。

【讨论】:

【参考方案2】:

扩展 user2967920 的回答:

    使用 AWS IoT Core 时无需创建设备。 AWS Amplify PubSub 实际上使用 IoT 作为通用 MQTT 代理。不会使用自定义授权器创建任何设备*。 您的自定义授权方返回的策略未保留。将其视为为特定连接创建的动态临时策略。

有关在 Android 和 iOS 上使用 AWS IoT 的示例,请查看 AWS Amplify PubSub(内部使用 AWS IoT Core)的documentation。在 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)

*如果您愿意,显然您可以在 lambda 函数中创建设备,就像您可以使用任何其他 AWS API 一样。

【讨论】:

以上是关于每次设备连接并发送数据时,是不是使用带有 aws-iot (wss) 的自定义授权方创建一个新设备?的主要内容,如果未能解决你的问题,请参考以下文章

从AWS Lambda向SQS队列发送数据时重置连接

如何使用 C# 向所有设备发送带有图像的 FCM 通知?

如何在 Node.js 中使用带有 API 网关的 AWS Lambda 发送二进制响应? [复制]

如何在aws设备场中为android espresso每次测试运行后清除设备数据

使用AWS Android SDK发送JWT令牌

从 AWS Lambda 读取 SQS 队列