[英]Send MFA token with access key for S3 bucket, file upload using c#
我正在尝试在我的应用程序中添加MFA(多重身份验证),我将在aws S3存储桶中存储对象。 我查看了AWS文档,但在C#中以编程方式向AWS发送任何请求时,找不到任何可以传递MFA tokedn的内容。
这是我没有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身份验证令牌。
来自MFA令牌的TOTP不直接与请求一起传递。
相反,您首先调用安全令牌服务(STS),其中您实际上“交换”当前凭据和MFA信息,以获取用于验证后续请求的一组临时凭证。
用户来电支持MFA参数时,AWS STS API操作的一个
AssumeRole
或GetSessionToken
,这取决于MFA保护的情况下,后面会解释。 作为呼叫的一部分,用户包括与用户相关联的设备的设备标识符。 用户还包括设备生成的基于时间的一次性密码(TOTP)。 在任何一种情况下,用户都会获得临时安全凭证,然后用户可以使用该凭证向AWS发出其他请求。https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.