2

我对 sts AssumeRoleWithWebIdentity 使用 curl 命令向 sts AssumeRoleWithWebIdentity 发出 POST 请求,以获取 OIDC(OpenID Connect) 的 access_key、secret_key 和令牌,该命令返回以下错误。

调用 AssumeRoleWithWebIdentity 操作时发生错误 (InvalidIdentityToken):Provided Token is not a Login With Amazon token。

curl -v -X POST 'https://sts.cn-northwest-1.amazonaws.com.cn/?Action=AssumeRoleWithWebIdentity&DurationSeconds=3600&RoleSessionName=app1&RoleArn=<ROLE_ARN>&WebIdentityToken=<TOKEN>&Version=2011-06-15&&ProviderId=www.amazon.com'
4

1 回答 1

3

花了几天后,我发现它在没有 ProviderId 的情况下工作。curl URL 在没有 ProviderID 的情况下工作,ProvideId 仅在 OAuth2.0 访问令牌不用于 OPenID Connect 的情况下才包含。

Aws文档:AssumeRoleWithWebIdentity Provider 提供的 Web 身份令牌的颁发机构。对于 OpenID Connect ID 令牌,这包含 iss 字段的值。对于 OAuth 2.0 访问令牌,这包含在 AssumeRoleWithWebIdentity 请求中传递的 ProviderId 参数的值。

curl -v -X POST 'https://sts.cn-northwest-1.amazonaws.com.cn/?Action=AssumeRoleWithWebIdentity&DurationSeconds=3600&RoleSessionName=app1&RoleArn=<ROLE_ARN>&WebIdentityToken=<TOKEN>&Version=2011-06-15&'
于 2021-01-13T09:17:50.707 回答