【发布时间】:2017-08-13 03:23:12
【问题描述】:
我目前正在 Android Studio 中开发一个 AWS 移动应用程序项目,并且我目前正在尝试通过 AWS Cognito 和 IAM 身份验证设置与 AWS IoT 的 MQTT 连接。
如果我将 MQTT 客户端作为独立项目运行而无需身份验证,假设一个未经身份验证的 IAM 角色,我可以连接到 MQTT,并订阅和接收给定主题。
但是,一旦我尝试通过经过身份验证的用户(通过登录我的移动应用程序)运行我的 MQTT 客户端,客户端就会受到限制,并且会不断尝试重新连接。
我在 AWS CloudWatch 中启用了日志记录,并给出了以下调试消息: "... EVENT:MQTT Client Connect MESSAGE:Connect Status: AUTHORIZATION_ERROR"
IAM 控制台中的 unauth 和 auth 角色具有相同的策略和资源访问权限,但有东西阻止了 MQTT 连接。
附言。 Auth 角色可以在我的应用程序中访问用户文件和 S3,这个问题似乎对于 IoT 访问是唯一的。
有谁知道是否可以在不使用证书文件的情况下允许通过授权用户进行连接,如果可以,如何?除非我弄错了,否则 Cognito 和 IAM 应该能够执行所需的授权来访问资源(只要我没有登录到 auth 角色,它就可以)
感谢我在这一点上能得到的任何提示,我已经挣扎了一段时间。
【问题讨论】:
标签: java amazon-web-services authentication websocket mqtt