【问题标题】:STS ,SAML and Java SDK Unable to load AWS credentials from any provider in the chainSTS、SAML 和 Java SDK 无法从链中的任何提供商加载 AWS 凭证
【发布时间】:2016-08-04 21:08:50
【问题描述】:

我正在尝试使用 SAML 请求(来自 ADFS)从 STS 获取 AWS 的临时凭证。 我有 SAML 令牌、角色 arn 和 principalARN。如果我使用它使用 AWS CLI 登录,它们就可以工作。但是在 Java SDK 中使用相同的 3 会出现以下错误。

无法从链中的任何提供商加载 AWS 凭证

这是我正在使用的 Java 代码。

AssumeRoleWithSAMLRequest samlreq =new AssumeRoleWithSAMLRequest().withPrincipalArn(principalARN).withRoleArn(roleARN).withSAMLAssertion(SAMLToken);

AWSSecurityTokenServiceClient stsclient = new AWSSecurityTokenServiceClient();

AssumeRoleWithSAMLResult tempcreds=stsclient.assumeRoleWithSAML(samlreq);

知道我做错了什么或错过了什么吗?

这是堆栈跟踪:

线程“主”com.amazonaws.AmazonClientException 中的异常:无法 从链中的任何提供商加载 AWS 凭证 com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:117) 在 com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.invoke(AWSSecurityTokenServiceClient.java:1098) 在 com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.assumeRoleWithSAML(AWSSecurityTokenServiceClient.java:575) 在 App.main(App.java:83)

【问题讨论】:

  • 你能包含你看到的确切堆栈跟踪吗?
  • 我在问题中添加了堆栈跟踪。

标签: java amazon-web-services aws-sdk


【解决方案1】:

我得到它的工作终于不得不添加:

BasicAWSCredentials basicCreds=new BasicAWSCredentials("", "");
AWSSecurityTokenServiceClient stsclient = new AWSSecurityTokenServiceClient(basicCreds);   

基本上给 sts 客户端一组空白凭据。

【讨论】:

  • .Net SDK 的相同问题和修复。
【解决方案2】:

AWSSecurityTokenServiceClient 已弃用。下面的代码也可以。

BasicAWSCredentials theAWSCredentials= new BasicAWSCredentials("","");
AWSCredentialsProvider theAWSCredentialsProvider = new AWSStaticCredentialsProvider(theAWSCredentials);
AWSSecurityTokenService theSecurityTokenService = AWSSecurityTokenServiceClientBuilder.standard().withCredentials(theAWSCredentialsProvider).build();

【讨论】:

  • AWS-SDK-JAVA-V2 上的 AWSBasicCredentials。
  • java.lang.NullPointerException: 访问密钥 ID 不能为空......你最好只使用 AnonymousCredentialsProvider,即:cognitoIdentityBuilder.region(AWSREGION).credentialsProvider(AnonymousCredentialsProvider.create());
猜你喜欢
  • 2017-06-15
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多