2016-04-13 11 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.auth.AWSCredentialsProviderChainでチェーン内の任意のプロバイダからAWSの資格情報を読み込むことができません :スレッド「メイン」com.amazonaws.AmazonClientExceptionで

例外。 getCredentials com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.assumeRoleWithSAML(AWSSecurityTokenServiceClient.java:575)で com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.invoke(AWSSecurityTokenServiceClient.java:1098)で(AWSCredentialsProviderChain.java:117) 0123私はそれが最終的に働いてしまったApp.main(App.java:83)

+0

表示されている正確なスタックトレースを含めることはできますか? –

+0

質問にスタックトレースを追加しました。 – Ritwaj

答えて

3

では、追加する必要がありました:

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

は、基本的には、STSのクライアントに資格情報の空白のセットを与えます。

+0

ありがとう!あなたのソリューションは魅力的に機能しました。 –

関連する問題