- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我已经查看过类似的问题,但无法解决我的问题。我正在开发一个 Web 应用程序,用户将在其中使用 AWS Cognito 的身份验证进行身份验证。注册部分没问题,但是当我尝试登录时,出现“未授权”异常。我已经尝试将自定义策略附加到我的 IAM Angular 色(授权 sts:AssumeRoleWithWebIdentity),但没有成功。代码现在是这样写的:
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
var sts = new AWS.STS({apiVersion: '2011-06-15'});
var params = {
RoleArn: 'arn:aws:iam::981601120657:role/Cognito_AliceAuth_Role', /* required */
RoleSessionName: 'AliceUserSession',
WebIdentityToken: result.getIdToken().getJwtToken(),
Policy: '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRoleWithWebIdentity", "Resource": "*" } ] }'
};
sts.assumeRoleWithWebIdentity(params, function (err, data) {
if (err)
console.log(err, err.stack); // ** <-- ERROR HERE
else
console.log(data); // successful response
});
//document.getElementById('authForm').submit();
},
onFailure: function (err) {
alert(err);
}
});
如您所见,我也在代码中指定了策略,但我仍然收到“AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity”错误。请帮助我:/
编辑:
在“Cognito_AliceAuth_Role”中,我创建了 Angular 色策略:AssumeRoleWithWebIdentityPolicy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRoleWithWebIdentity",
"Resource": "*"
}
]
}
和:GetFederationTokenPolicy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:GetFederationToken",
"Resource": "*"
}
]
}
信任关系:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "us-east-1:e4c1833d-a62b-402a-b995-1b2513b04c02"
},
"ForAnyValue:StringLike": {
"cognito-identity.amazonaws.com:amr": "authenticated"
}
}
}
]
}
最佳答案
似乎您正在使用 Cognito 用户池提供的 Id token 来调用 assumeRoleWithWebIdentity。
您需要先将此 token 与 Cognito 身份联合,然后您可以使用 Cognito 身份提供的 Open Id 连接 token 来调用 assumeRoleWithWebIdentity。您也可以使用 Enhanced flow 直接调用 getCredentialsForIdentity| .
参见 this了解有关如何将用户池 token 与 Cognito 身份联合的更多信息。
关于javascript - 拒绝访问 : Not authorized to perform sts:AssumeRoleWithWebIdentity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37814997/
我正在使用 AWS Cogito 服务通过 AWS Java SDK 从 Cognito 获取用户凭证。 我关注了https://mobile.awsblog.com/post/TxBVEDL5Z8J
我已经查看过类似的问题,但无法解决我的问题。我正在开发一个 Web 应用程序,用户将在其中使用 AWS Cognito 的身份验证进行身份验证。注册部分没问题,但是当我尝试登录时,出现“未授权”异常。
我对使用 AssumeRoleWithWebIdentity 方法有点困惑。让我一步步描述。 第 1 步:-我从 facebook 获取 facebook token 。 第 2 步:-使用 getI
我有一个上传到 s3 的简单 iOS 应用程序。我正在尝试 unauth 所有 - 尽管理想情况下我想做 Facebook。 2 个 IAM 角色(使用向导创建)。 IAM 身份验证策略(针对未授权角
我已经在 Cognito 中设置了用户池,并在通过 cognito js sdk 对创建的用户进行身份验证后获得了 JWT token 。当我尝试调用假设RoleWithWebIdentity api
我是一名优秀的程序员,十分优秀!