我试图弄清楚如何获取Windows WPF应用程序以安全地访问AWS队列,而不必在客户端上存储AWS凭证。
我的WPF应用在身份服务器中具有凭据。我以为通过将我的ID服务器添加为AWS IAM中的ID提供程序,然后可以使用我的ID服务器证书创建一个临时AWS令牌。
但是...这远高于我的智商水平:/
有人有样品吗?博客文章?有视频吗?
谢谢
更多
使用以下代码,我可以从理论上根据令牌创建临时AWS凭证:
var stsclient = new Amazon.SecurityToken.AmazonSecurityTokenServiceClient(Amazon.RegionEndpoint.USEast1);
var response = await stsclient.AssumeRoleWithWebIdentityAsync(new AssumeRoleWithWebIdentityRequest
{
DurationSeconds = 3600,
//ProviderId = " identity.blah",
RoleArn = "arn:aws:iam::account:role/rolename",
RoleSessionName = "app1",
WebIdentityToken = myToken
});
AssumedRoleUser assumedRoleUser = response.AssumedRoleUser;
string audience = response.Audience;
Credentials credentials = response.Credentials;
var packedPolicySize = response.PackedPolicySize;
string provider = response.Provider;
string subjectFromWebIdentityToken = response.SubjectFromWebIdentityToken;
但是,我拥有的令牌是针对客户而非用户的,因此它是访问令牌。
当我尝试此代码时,它抱怨没有'sub'声明-这是有道理的,我需要使用一个身份令牌,但是要这样做,我需要使用用户的登录名和令牌。