gpt4 book ai didi

java - AWS Cognito GetCredentialsForIdentity

转载 作者:行者123 更新时间:2023-11-30 06:41:39 24 4
gpt4 key购买 nike

我正在尝试使用以下博客文章中概述的方法从 Java 向 S3 验证认知身份:

https://aws.amazon.com/blogs/mobile/understanding-amazon-cognito-authentication-part-4-enhanced-flow/

我已成功实现开发人员身份验证提供程序,并且可以为我的认知身份检索有效的 OpenId token 。将文件上传/下载到 S3 时,该 token 可在 iOS 和 Android SDK 中使用。不幸的是,我无法在我的 Java 应用程序中成功向 S3 验证相同的身份。这是我正在使用的代码:

Map<String, String> logins = new HashMap();
logins.put("cognito-identity.amazonaws.com", cognitoOpenIdToken);
GetCredentialsForIdentityRequest getCredentialsRequest =
new GetCredentialsForIdentityRequest()
.withIdentityId(cognitoIdentityId)
.withLogins(logins);
AmazonCognitoIdentityClient cognitoIdentityClient =
new AmazonCognitoIdentityClient();
GetCredentialsForIdentityResult getCredentialsResult =
cognitoIdentityClient.getCredentialsForIdentity(getCredentialsRequest);

对 getCredentialsForIdentity 的调用失败,并出现错误“com.amazonaws.AmazonClientException:无法从链中的任何提供商加载 AWS 凭证”。此方法被记录为不需要身份验证的公共(public) API。但是,我注意到,如果在系统变量中配置了有效 IAM 凭证的环境中完成调用,则调用会成功。在不是这种情况的环境中它会失败。

我错过了一些简单的事情吗?

最佳答案

您是否尝试过通过以下方式初始化 AmazonCognitoIdentityClient?

新的 AmazonCognitoIdentityClient(新 AnonymousAWSCredentials());

否则,根据 AWS Java SDK 的设计,服务客户端会查找 AWS 凭证,因为同一客户端也可用于访问经过身份验证的 API。

关于java - AWS Cognito GetCredentialsForIdentity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44291377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com