使用认知登录而不是证书来验证和订阅 aws IoT MQTT 主题?

2023-12-06

我是 AWS 的新手,我正在尝试弄清楚我的用例是否可行。我想创建一个移动应用程序,用户可以登录(电子邮件/facebook/google 等),然后订阅 aws IoT 上的一些 MQTT 主题,以接收园艺系统的实时传感器数据。 AWS 上有很多教程向您展示如何执行此操作 (主要例子:https://github.com/awslabs/aws-sdk-android-samples/blob/master/AndroidPubSub/README.md)

但所有这些都要求您在代码/密钥库本身中下载证书、插入应用程序 ID、密钥等。我真的很想避免所有这些,只使用登录作为订阅这些主题所需的所有授权。

这可能吗?或者我需要构建一些自定义系统吗?


简短的回答是,是的,这是可能的。为此,您应该执行以下操作:

  • 创建认知user pool. User Pool ID and App client id将在下一步中使用。您可以找到更多信息here.

  • 创建认知Identity水池。在下面Authentication Providers你应该给User Pool ID and App client id, 更多信息here。当你创建这个时,它将创建两个Roles适用于 IAM 中经过身份验证和未经身份验证的用户。您应该向这些角色添加 IoT 访问权限(连接、发布、订阅和接收)。

  • 在客户端(您的应用程序),选择您首选的 AWS SDK(Android、iOS、React、JS 等)并配置后User pool ID, Identity pool and App client ID您应该首先通过将用户信息(通常是电子邮件/用户名和密码)发送到 Cognito 用户池来对用户进行身份验证。作为回报,您将获得一些代币。

  • 其中 IdToken (JWT) 将被发送到身份池,作为回报,您将获得User Identity ID以及访问 AWS 其他服务(例如 IoT)所需的凭证(accessKeyId、secretAccessKey、sessionToken)。

  • 最后一步将使用aws-iot-sdk用于您的应用程序以及这些凭据来发布和订阅您的 IoT 主题。您可以找到有关以下内容的更多信息aws-iot-sdk here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用认知登录而不是证书来验证和订阅 aws IoT MQTT 主题? 的相关文章

随机推荐