我正在使用一个带有开发人员身份验证身份的Authflow设置的认知身份池--选择这个auth流是因为出于一些业务原因,我们不能使用认知用户池。因此,我自己使用带有authendpoint的API网关实现了一个用户标识提供者服务,该endpoint激发一个Lambda函数。
因此,我通过运行CognitoIdentity.getOpenIDTokenFordeveloperIdentity
和随后运行CognitoIdentity.getCredentialsForIdentity
生成了一个临时的AccessKey
和SecretKey
,并获得了临时的AWS凭据(临时的AccessKey
和SecretKey
)。
现在,我希望生成一个AccesStoken
,以便在我使用IAM授权的AWS API网关上对我的请求进行身份验证(因此它需要一个AccesStoken
来授权请求)。
我的问题是--如何生成AccesStoken
?
我不认为您需要生成AccesStoken。看一下API Gateway IAM Auth文档:
注意:要手动验证使用其他工具或环境发送到API网关的请求,必须使用签名版本4签名过程。有关更多信息,请参见API网关REST API参考中的签名请求。
按照上面的链接,您将看到:
它在没有身份验证的情况下工作得很好,但我想在身份验证的情况下使用它。有人能告诉我该怎么做吗?我是swift和AWS认知服务的新手。
我想使用boto3获取访问AWS服务的临时凭据。用例是这样的:我的Cognito用户池中的一个用户登录到我的服务器,我希望服务器代码为该用户提供访问其他AWS服务的临时凭据。 我有一个Cognito用户池,其中存储了我的用户。我有一个Cognito标识池,它不允许未经授权的访问,只允许来自Cognito用户池的用户访问。 下面是我开始的代码: 但是,仅运行这三行代码就会引发异常: 由于我的Cogn
我试图为AWS实现“开发人员身份验证身份”,如下所示:https://AWS.amazon.com/blogs/mobile/amazon-cognito-innecling-developer-authenticated-identities/ 我很好地理解了基本流程。 我怎样才能做到这一点?
当用户启动应用程序时,他们是一个未经身份验证的用户,并且他们将从iOS应用程序中的DeveloperAuthenticatedIdentityProvider类获得。我可以在cognito控制台中看到。但是,当他们登录时,我调用了我的nodejs后端,其登录映射为: 并使用以下后端代码:
我的代码在这里:代码重新发布是因为我想问一个更直接的问题。如何在未经身份验证的用户和经过身份验证的用户之间切换?我的未经验证的文件似乎已缓存,我使用了以下方法: 在我剩下的api代码之前,它仍然不能工作。谢谢你的帮助 注意:我知道它不起作用,因为我在切换配置/凭据提供程序后立即使用lambda进行调用,并且只有授权用户才能调用此方法。 编辑@behrooziAWS答案: API代码: 完整错误:B