使用 cognito 登录而不是证书来验证和订阅 aws IoT MQTT 主题?
Use cognito login instead of certificates to authenticate and subscribe to aws IoT MQTT topics?
我刚开始学习 AWS,我想弄清楚我的用例是否可行。我想创建一个移动应用程序,用户可以在其中登录(email/facebook/google 等),然后在 aws IoT 上订阅一些 MQTT 主题以接收园艺系统的实时传感器数据。 AWS 上有很多教程向您展示如何执行此操作
(主要示例:https://github.com/awslabs/aws-sdk-android-samples/blob/master/AndroidPubSub/README.md)
但所有这些都要求您在 code/keystore 本身中下载证书、插入应用程序 ID、密钥等。我真的很想避免所有这些,只使用登录名作为订阅这些主题所需的所有授权。
这可能吗?还是我需要构建一些自定义系统?
简短回答,是的,这是可能的。为此,您应该执行以下操作:
创建 Cognito 用户 池。 User Pool ID
和 App client id
将在下一步中使用。您可以找到更多信息 here.
创建 Cognito Identity 池。在 Authentication Providers
下你应该给出 User Pool ID
和 App client id
,更多信息 here。当您创建它时,它会在 IAM 中为经过身份验证的用户和未经身份验证的用户创建两个 Roles
。您应该为这些角色添加 IoT 访问权限(连接、发布、订阅和接收)。
在客户端(您的应用程序),选择您喜欢的 AWS SDK(Android、iOS、React、JS 等)并配置 User pool ID
、Identity pool
和 App client ID
您应该首先通过将用户信息(通常是 Email/Username 和密码)发送到 Cognito 用户池来对用户进行身份验证。在return,你会得到一些代币
在这些 IdToken (JWT) 中将被发送到身份池,在 return 中,您将获得 User Identity ID
以及需要的凭据(accessKeyId、secretAccessKey、sessionToken)访问 AWS 其他服务,例如 IoT。
最后一步是为您的应用程序使用 aws-iot-sdk
以及这些凭据来发布和订阅您的 IoT 主题。您可以找到有关 aws-iot-sdk
here.
的更多信息
我刚开始学习 AWS,我想弄清楚我的用例是否可行。我想创建一个移动应用程序,用户可以在其中登录(email/facebook/google 等),然后在 aws IoT 上订阅一些 MQTT 主题以接收园艺系统的实时传感器数据。 AWS 上有很多教程向您展示如何执行此操作 (主要示例:https://github.com/awslabs/aws-sdk-android-samples/blob/master/AndroidPubSub/README.md)
但所有这些都要求您在 code/keystore 本身中下载证书、插入应用程序 ID、密钥等。我真的很想避免所有这些,只使用登录名作为订阅这些主题所需的所有授权。
这可能吗?还是我需要构建一些自定义系统?
简短回答,是的,这是可能的。为此,您应该执行以下操作:
创建 Cognito 用户 池。
User Pool ID
和App client id
将在下一步中使用。您可以找到更多信息 here.创建 Cognito Identity 池。在
Authentication Providers
下你应该给出User Pool ID
和App client id
,更多信息 here。当您创建它时,它会在 IAM 中为经过身份验证的用户和未经身份验证的用户创建两个Roles
。您应该为这些角色添加 IoT 访问权限(连接、发布、订阅和接收)。在客户端(您的应用程序),选择您喜欢的 AWS SDK(Android、iOS、React、JS 等)并配置
User pool ID
、Identity pool
和App client ID
您应该首先通过将用户信息(通常是 Email/Username 和密码)发送到 Cognito 用户池来对用户进行身份验证。在return,你会得到一些代币在这些 IdToken (JWT) 中将被发送到身份池,在 return 中,您将获得
User Identity ID
以及需要的凭据(accessKeyId、secretAccessKey、sessionToken)访问 AWS 其他服务,例如 IoT。最后一步是为您的应用程序使用
aws-iot-sdk
以及这些凭据来发布和订阅您的 IoT 主题。您可以找到有关aws-iot-sdk
here. 的更多信息