当前位置: 首页 > 知识库问答 >
问题:

如何使用经过身份验证的AWS Cognito标识访问AWS IoT终结点?

宫俊才
2023-03-14

我正在使用JavaScript(paho-mqtt-js)中的MQTT客户端连接到AWS物联网endpoint,如果我使用自己的AWS凭据,我可以连接。

但是,如果我使用Cognito为登录用户生成的凭据,我将无法这样做。我在IAM中的Cognito授权角色附带了“AWSIoTFullAccess”策略,因此我不明白为什么这些凭据每次都返回403错误。

在这方面的任何帮助都将不胜感激。

共有2个答案

尤研
2023-03-14

检查您的AWS物联网政策。除了附加到IAM角色的策略之外,您还需要针对您的Cognito身份制定AWS物联网策略。请参见此处的文档:

https://docs.aws.amazon.com/iot/latest/developerguide/authorization.html

邢博学
2023-03-14

在处理联邦身份时遇到了类似的问题。解决问题的一些技巧:

  • 请使用云观察日志来找出问题,它非常方便。
  • 同时查看主题名称以_CognitoIdentityCredentials结尾的Cloud Watch日志
  • 使用适当的会话令牌
  • 使用AWS CLI并执行附加-主体-策略手动尝试。
  • 请参考此链接https://github.com/alfonsodev/aws-iot-example/blob/master/index.js本地运行nodejs以排除问题。
  • 请使用附加主体策略。这个链接http://techqa.info/programming/question/40301345/connect-to-AWS-IoT-using-web-socket-with-Cognito-authenticated-users非常有助于整合

希望这有帮助!

 类似资料:
  • 当用户启动应用程序时,他们是一个未经身份验证的用户,并且他们将从iOS应用程序中的DeveloperAuthenticatedIdentityProvider类获得。我可以在cognito控制台中看到。但是,当他们登录时,我调用了我的nodejs后端,其登录映射为: 并使用以下后端代码:

  • 我使用Appsync和Cognito(基本电子邮件和密码身份验证)创建了一个经过身份验证的GraphQLAPIendpoint。如何从现有Nuxt前端应用程序连接到此API?我不想使用aws amplify创建的默认vue前端。

  • 我正在尝试将AWS Cognito(用户池)和AWS DynamoDB用于我的移动应用程序。 我做了以下工作: 在AWS Cognito上创建用户池。 在AWS Cognito上创建身份池,并将用户池ID、应用客户端ID设置为身份验证提供商上的Cognito。 在AWS DynamoDB上创建SampleTable. 设置权限验证角色以访问AWS IAM上的SampleTable。 我创建了以下代

  • 根据developer.yahoo.com/mail/和IMAP的回复: Yahoo Mail可以通过IMAP使用OAuth(2)身份验证访问。 我在https://developer.yahoo.com/apps/上注册了我的应用程序,所以我得到了客户端ID和客户端机密。我没有找到任何与邮件相关的作用域(API权限)。然而,我选择了所有API权限,这是在我注册我的应用程序时提出的。 我尝试实现O

  • 我正在开发ASP NET核心Web API,对认证方式的选择感到困惑。我曾经应用默认的Asp Net身份验证,但最近我知道了JWT。因此,我几乎像本文中一样实现了身份验证:https://stormpath.com/blog/token-authentication-asp-net-core。但是我不能理解这个JWT的好处。通过简单的Asp Net身份认证,我不关心令牌存储等,我只需要用signI

  • 我正在使用预装的Visual Studio解决方案开发我的首批OAuth解决方案之一。 不过,同时我也希望我的服务器应用程序拥有“完全访问权限”。他们需要能够获得列表增加多个用户,删除东西等等。 下面是我的问题,我认为这些问题可以很容易地一起回答: 如何管理两个短期令牌(承载令牌?)连同永久令牌(API令牌?) 我在访问级别上有何不同,因此某些方法需要永久令牌? 在同一方法中,我在访问级别上有何不