Аутентифицированные пользователи с помощью шлюза STS и API

Если мой пользователь отправляет запрос в службу STS с запросом учетных данных:

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

Позже, когда пользователь отправляет запрос в закрытую конечную точку шлюза API, с помощью RoleSessionName я могу узнать, кто делает запрос. Но как мы можем избежать другого пользователя, чтобы принять его личность, используя то же RoleSessionName?

Как лучше всего аутентифицировать пользователей с помощью ролей STS и IAM?

2 ответа

  1. RoleSessionName — это всего лишь идентификатор предполагаемого сеанса. Он не должен использоваться в качестве механизма для дифференциации абонентов.

    Предполагаемая роль в данном случае является» эффективной». Если вы хотите, чтобы API вел себя по-разному в зависимости от пользователя, пожалуйста, используйте уникальную роль для каждого пользователя.

  2. RoleSessionName это способ отличить каждого пользователя. Нельзя создать отдельную роль для каждого пользователя, так как каждая учетная запись может иметь не более 1000 ролей. Я думаю, что этот вызов API не предназначен для использования на стороне клиента для аутентификации. Он предназначен только для предоставления роли уже прошедшему проверку подлинности пользователю на стороне сервера.