gpt4 book ai didi

java - STS、SAML 和 Java SDK 无法从链中的任何提供商加载 AWS 凭证

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:07:56 25 4
gpt4 key购买 nike

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

Unable to load AWS credentials from any provider in the chain

这是我使用的 Java 代码。

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

AWSSecurityTokenServiceClient stsclient = new AWSSecurityTokenServiceClient();

AssumeRoleWithSAMLResult tempcreds=stsclient.assumeRoleWithSAML(samlreq);

知道我做错了什么或遗漏了什么吗?

这是堆栈跟踪:

Exception in thread "main" com.amazonaws.AmazonClientException: Unable to load AWS credentials from any provider in the chain at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:117) at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.invoke(AWSSecurityTokenServiceClient.java:1098) at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.assumeRoleWithSAML(AWSSecurityTokenServiceClient.java:575) at App.main(App.java:83)

最佳答案

我让它工作终于不得不添加:

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

基本上为 sts 客户端提供一组空白凭据。

关于java - STS、SAML 和 Java SDK 无法从链中的任何提供商加载 AWS 凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604024/

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