2016-11-16 90 views
0

我在使用AmazonSecurityTokenServiceClient调用AssumeRoleWithSAMLAsync时创建客户端对象时,必须配置凭据,因为我的意图是使用AssumeRoleWithSaml创建临时凭证。如何在不使用AmazonSecurityTokenServiceClient的情况下调用AssumeRoleWithSAMLAsync

AWS STS服务的文档说明AssumeRoleWithSaml不需要凭证,但客户端构造函数需要凭证。

我也试过直接与下面的参数

https://sts.amazonaws.com/ ?Version=2011-06-15&Action=AssumeRoleWithSAML&RoleArn=arn:aws:iam::xxx:role/xxx&DurationSeconds=900&PrincipalArn=arn:aws:iam::xxx:saml-provider/adfs&SAMLAssertion=base64 ecoded SAML token

调用API,但这样也引发错误 <Code>InvalidIdentityToken</Code> <Message>Invalid base64 SAMLResponse (Service: AWSOpenIdDiscoveryService; Status Code: 400; Error Code: AuthSamlInvalidSamlResponseException; Request ID: xx-xxxx-xxx)</Message> 当我配置的凭据,我可以创建临时证书。因此我确定我的SAML令牌是正确的。

任何人都可以让我知道如何从邮递员调用AssumeRoleWithSAML?或者如何通过代码调用它而不实例化客户端?

在我看来,鸡和鸡蛋的问题。

回答

0

您可以使用AnonymousAWSCredentials类创建客户端在为临时角色凭证交换SAML令牌时可以使用的凭据。