我是 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(使用前将#替换为@)