Отправьте токен MFA с ключом доступа для корзины S3, загрузите файл с помощью c # - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь добавить MFA (многофакторную аутентификацию) в мое приложение, где я собираюсь сохранить объект в контейнере aws S3.Я просмотрел документацию AWS, но не смог найти ничего, где мы могли бы передать токен MFA при программной отправке любого запроса в AWS на C #.

Вот мой фрагмент рабочего кода без MFA,

var awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
_client = new AmazonS3Client(awsCredentials, Amazon.RegionEndpoint.USEast1);

var putRequest = new PutObjectRequest
{

BucketName = ConfigurationManager.AppSettings["S3BucketName"],
Key = fileName,
FilePath = localFilePath,
ContentType = "image/" + Path.GetExtension(fileName),
CannedACL = S3CannedACL.PublicRead
};
var req = JsonConvert.SerializeObject(putRequest);

Я ожидаю добавить токен аутентификации MFA в этот код выше.

1 Ответ

0 голосов
/ 26 марта 2019

TOTP с токена MFA не передается напрямую с запросом.

Вместо этого вы сначала вызываете службу маркеров безопасности (STS), где вы по существу «обмениваете» свои текущие учетные данные и информацию MFA для набора временных учетных данных, которые используются для проверки подлинности последующих запросов.

Пользователь вызывает одну из операций API AWS STS, которая поддерживает параметры MFA, AssumeRole или GetSessionToken, в зависимости от сценария защиты MFA, как будет объяснено позже. В рамках вызова пользователь включает идентификатор устройства, связанного с пользователем. Пользователь также включает основанный на времени одноразовый пароль (TOTP), который генерирует устройство. В любом случае пользователь возвращает временные учетные данные безопасности, которые пользователь затем может использовать для отправки дополнительных запросов в AWS.

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html

...