使用STS和API网关的经过身份验证的用户

时间:2016-10-01 14:17:28

标签: amazon-web-services authentication aws-sdk aws-api-gateway

如果我的用户向STS发送请求凭据的请求:

AWS.config.credentials = new AWS.WebIdentityCredentials({
  RoleArn: 'arn:aws:iam::{id}:role/{role}',
  WebIdentityToken: idToken,
  RoleSessionName: VALUE
});

稍后,当用户向私有API网关端点发送请求时,通过使用RoleSessionName,我可以知道谁是发出请求的人。但是,我们如何通过使用相同的RoleSessionName来避免其他用户假设他的身份?

使用STS和IAM角色对用户进行身份验证的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

RoleSessionName只是假定会话的标识符。它不应该用作区分呼叫者的机制。

在这种情况下,假定的角色是“有效”的主体。如果您希望API根据用户的不同行为,请为每个用户使用唯一角色。

答案 1 :(得分:0)

RoleSessionName是告诉每个用户分开的方法。无法为每个用户创建单独的角色,因为每个帐户最多只能有1000个角色。我认为此API调用不应在客户端用于身份验证。它只是为服务器端已经过身份验证的用户提供角色。