使用认知登录而不是证书来验证和订阅 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 主题? 的相关文章

  • 使用 CMK 的 SQS 加密

    我正在尝试从加密的 SQS 读取消息 对象落在 S3 存储桶上 gt 触发 S3 事件 gt 消息发送到 SQS gt SQS 触发 Lambda 进行处理 我已经使用 AWS 托管的 CMK 完成了这项工作 但是 我无法使用 AWS 拥有
  • 我可以从 amazon Kinesis 中删除数据记录或分片而不删除流吗?

    我知道 Kinesis Stream 中的数据记录将在 24 小时内自动删除 但是在我的应用程序中 每当我将一些数据写入流中时 如果我想第二次写入其他数据 则应删除首先插入的数据 请任何人帮助我 因为我是使用 AWS Kinesis Str
  • 如何使用 iam-role 启动 ec2-instance?

    我可以在管理控制台中使用 iam role 启动 ec2 instance 但我不知道如何从 aws ruby sdk 中使用 iam role 启动 ec2 instance iam role test s Policy is here
  • AWS ACM 证书管理 删除正在使用的证书

    我想删除 AWS Certificate Manager 中正在使用的 AWS 证书 为此 我使用建议的 AWS CLI 和以下命令 aws iam delete server certificate server certificate
  • 如何使用 aws-cli 访问 Google Cloud Storage 存储桶

    我可以访问 aws 和 Google Cloud Platform 是否可以执行以下操作 使用 aws cli 列出 Google Cloud Storage 存储桶 使用 aws cli 将 CSV 文件放入 Google Cloud S
  • 使用 eb-cli 创建单实例 Elastic Beanstalk 应用程序

    所以我有一个带有适当 Procfile Buildfile 的 java 应用程序 我已在我们的临时 Elastic Beanstalk 环境中运行 eb create 但我必须进行手动配置更改以使其成为单一实例类型而不是负载平衡实例类型
  • 您可以克隆 AWS lambda 吗?

    针对不同环境的克隆 分期 QA PROD DEV 等 有没有一种快速简单的方法来克隆我的 lambda 给出不同的名称并从那里调整配置 您需要在新帐户中重新创建 Lambda 函数 转到 lambda 函数 单击 操作 并导出您的函数 下载
  • 同一区域内但属于不同账户的AWS数据传输费用如何?

    如果 S3 gt EC2 或 EC2 gt EC2 位于同一 AWS 区域 则数据传输费用似乎是免费的 S3价格注意事项 您需要为进出 Amazon S3 的所有带宽付费 except对于以下情况 当Amazon Elastic Compu
  • AWS CDK 授予堆栈外部资源的权限

    我对 AWS CDK 相当陌生 并且没有太多使用 AWS 的经验 在我正在编写的 CDK 堆栈中 我必须向使用其他 CDK 模板构建且已位于 aws 中的资源授予权限 假设我的堆栈 A 包含一个 lambda 该 lambda 将从另一个服
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • Amazon SageMaker 不支持的内容类型应用程序/x-image

    我在 Sagemaker 中部署了基于 TensorFlow keras 的 CNN 模型 现在为了调用推论 我遵循了这个tutorial https aws amazon com blogs machine learning classi
  • 为什么此 HTTP 请求在 AWS Lambda 上不起作用?

    我正在开始使用 AWS Lambda 并尝试从我的处理程序函数请求外部服务 根据这个答案 https stackoverflow com a 27932216 473467 HTTP 请求应该可以正常工作 而且我还没有找到任何其他说明的文档
  • 无法分配内存:fork:无法创建新进程?

    我们的托管在aws 最近 我们的博客从wordpress to aws 我们遇到服务器响应时间明显延迟的情况 主要是在访问博客时 以下是来自error log file Wed Feb 25 06 10 10 2015 error 12 C
  • AWS API Gateway - Lambda - 内部服务器错误

    我正在通过 lambda 将图像上传到 s3 一切正常 没有错误 但 API Gateway 的响应是 500 内部服务器错误 我按照本教程配置了 api gateway 对与 Amazon API Gateway 的 API 集成的二进制
  • 我可以更改 CloudWatch 上的公制单位吗?

    我正在将指标数据发送到 CloudWatch 它们被发送到 AWSStandardUnit Count单位 但后来我把它们改为StandardUnit Milliseconds 在 AWS 的仪表板上 我仍然看到以下数据Count unit
  • 如何导入 boto3 ssm ParameterNotFound 异常?

    我想import the exception当一个boto3 ssm找不到参数get parameter 我正在尝试添加一些额外的内容ssm的功能moto图书馆 但我现在很困惑 gt gt gt import boto3 gt gt gt
  • 使用 AWS Elastic Beanstalk 在 AWS 上部署 Spring Boot 应用程序

    我想使用 AWS Elastic Beanstalk 在 AWS 上部署 Spring Boot 应用程序 但我没有看到上传 jar 文件的选项 只有 zip 和 war 在本教程中 他们将部署一个 jar 文件 https aws ama
  • 将庞大数据库从亚马逊RDS导出到本地mysql

    我在 Amazon RDS 上有一个 mysql 数据库 大约 600GB 数据 我需要将其移回本地专用服务器 但我不知道从哪里开始 每次我尝试初始化 sqldump 时它都会冻结 有没有办法将其移至 S3 甚至可能在开始下载之前将其分成更
  • AWS Lambda 似乎在完成之前退出

    我有一个非常简单的 lambda 函数 nodeJS 它将接收到的事件放入 kinesis 流中 这是源代码 use strict const AWS require aws sdk const kinesis new AWS Kinesi
  • 在 VPC 内从 Lambda 访问 AWS S3

    总的来说 我对在 VPC 中使用 AWS Lambda 感到非常困惑 问题是 Lambda 在尝试访问 S3 存储桶时超时 解决方案似乎是 VPC 端点 我已将 Lambda 函数添 加到 VPC 以便它可以访问 RDS 托管数据库 下面的

随机推荐