使用自定义授权器连接到 AWS IOT 并使用 MQTT 用户名密码
Connecting to AWS IOT using Custom Authorizer and use MQTT Username Password
我想使用用户名和密码连接到 AWS IOT 并发送有关主题的数据。我在 AWS IOT 文档中了解到我们可以使用自定义身份验证来实现这一点:
https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
我遵循了文档并且:
- 已创建自定义身份验证 Lambda
- 使用 Lambda ARN 在 AWS IOT 中创建自定义授权方
- 添加了自定义授权方来调用 lambda 函数。
- 已使用
aws iot test-invoke-authorizer
测试自定义授权方
我能够使用 aws int test-invoke-authorizer 为 MQTT 上下文测试 lambda。
但是当我尝试使用用户名密码 connect/publish 到 AWS IOT 时失败了。我按照以下文档进行操作。
这是我用来使用 mosquito.org cli
连接 AWS IOT 的命令
mosquitto_pub -p 443 -i 'sample' -h XXXXXXXXXX.iot.ap-south-1.amazonaws.com -u "username?x-amz-customauthorizer-name=my-new-authorizer" -P "dGVzdA==" -t test/hello -m "Hello World" -d
我收到的错误如下
Client sample sending CONNECT
Error: Unknown error.
注意:我没有像文档中提到的那样传递令牌和签名,因为我在 lambda 中禁用了它。
非常感谢任何帮助。
我收到了 AWS 高级支持的回复,根据他们的要求,我们必须在发出命令时包含 APLN。此外,我们还必须提供 AmazonRootCA1.pem
mosquitto_pub -p 443 -i 'sample' -h XXXX-ats.iot.ap-south-1.amazonaws.com -u "username?x-amz-customauthorizer-name=my-new-authorizer" -P "test" -t test/hello -m "Hello World" --tls-alpn mqtt --cafile AmazonRootCA1.pem -d
注意:他们建议了以下选项:
--cafile AmazonRootCA1.pem
--tls-alpn mqtt
您可以从这里下载证书 link:
我想使用用户名和密码连接到 AWS IOT 并发送有关主题的数据。我在 AWS IOT 文档中了解到我们可以使用自定义身份验证来实现这一点: https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html
我遵循了文档并且:
- 已创建自定义身份验证 Lambda
- 使用 Lambda ARN 在 AWS IOT 中创建自定义授权方
- 添加了自定义授权方来调用 lambda 函数。
- 已使用
aws iot test-invoke-authorizer
测试自定义授权方
我能够使用 aws int test-invoke-authorizer 为 MQTT 上下文测试 lambda。
但是当我尝试使用用户名密码 connect/publish 到 AWS IOT 时失败了。我按照以下文档进行操作。
这是我用来使用 mosquito.org cli
连接 AWS IOT 的命令 mosquitto_pub -p 443 -i 'sample' -h XXXXXXXXXX.iot.ap-south-1.amazonaws.com -u "username?x-amz-customauthorizer-name=my-new-authorizer" -P "dGVzdA==" -t test/hello -m "Hello World" -d
我收到的错误如下
Client sample sending CONNECT
Error: Unknown error.
注意:我没有像文档中提到的那样传递令牌和签名,因为我在 lambda 中禁用了它。
非常感谢任何帮助。
我收到了 AWS 高级支持的回复,根据他们的要求,我们必须在发出命令时包含 APLN。此外,我们还必须提供 AmazonRootCA1.pem
mosquitto_pub -p 443 -i 'sample' -h XXXX-ats.iot.ap-south-1.amazonaws.com -u "username?x-amz-customauthorizer-name=my-new-authorizer" -P "test" -t test/hello -m "Hello World" --tls-alpn mqtt --cafile AmazonRootCA1.pem -d
注意:他们建议了以下选项:
--cafile AmazonRootCA1.pem
--tls-alpn mqtt
您可以从这里下载证书 link: