2016-04-13 51 views
1

我試圖使用SAML請求(來自ADFS)從STS獲取AWS的臨時憑證。 我有SAML令牌,角色arn和principalARN。如果我使用它來使用AWS CLI登錄,它們就可以工作。但是在Java SDK中使用相同的3會導致以下錯誤。STS,SAML和Java SDK無法從鏈中的任何提供程序加載AWS憑證

無法從任何供應商加載鏈

這裏AWS憑據是我使用的Java代碼。

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

AWSSecurityTokenServiceClient stsclient = new AWSSecurityTokenServiceClient(); 

AssumeRoleWithSAMLResult tempcreds=stsclient.assumeRoleWithSAML(samlreq); 

任何想法我做錯了或失蹤?

這裏是堆棧跟蹤:

異常在線程「主」 com.amazonaws.AmazonClientException:無法 在 com.amazonaws.auth.AWSCredentialsProviderChain從鏈中的任何加載提供商AWS憑據。 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)

+0

您能否包含您正在看到的確切堆棧跟蹤? –

+0

我在問題中添加了堆棧跟蹤。 – Ritwaj

回答

3

我得到它的工作終於有了補充:

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

基本上給客戶STS空白組憑據。

+0

非常感謝!你的解決方案就像一個魅力。 –

相關問題