如果我的用户向STS发送请求凭据的请求:
AWS.config.credentials = new AWS.WebIdentityCredentials({
RoleArn: 'arn:aws:iam::{id}:role/{role}',
WebIdentityToken: idToken,
RoleSessionName: VALUE
});
稍后,当用户向私有API网关端点发送请求时,通过使用RoleSessionName,我可以知道谁是发出请求的人。但是,我们如何通过使用相同的RoleSessionName来避免其他用户假设他的身份?
使用STS和IAM角色对用户进行身份验证的最佳方法是什么?
答案 0 :(得分:0)
RoleSessionName只是假定会话的标识符。它不应该用作区分呼叫者的机制。
在这种情况下,假定的角色是“有效”的主体。如果您希望API根据用户的不同行为,请为每个用户使用唯一角色。
答案 1 :(得分:0)
RoleSessionName
是告诉每个用户分开的方法。无法为每个用户创建单独的角色,因为每个帐户最多只能有1000个角色。我认为此API调用不应在客户端用于身份验证。它只是为服务器端已经过身份验证的用户提供角色。