我正在开发带有REST后端的单页应用程序,该后端使用AWS Cognito进行用户管理和身份验证。
我已经对它进行了结构设计,以使当用户进入没有令牌的页面时,将发生以下一系列步骤:
sessionStorage
我想在我的应用程序中具有两个用户角色: Users 和 Admins 。不允许用户调用任何AWS服务,而应允许 Admins 作为其公司创建/邀请和提升其他用户为管理员。
当前,我已经为用户池和Web应用程序设置了一个身份池,该身份池启用了管理员权限。我使用以下代码对身份池进行身份验证:
AWS.config.region = "eu-central-1";
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'eu-central-1:<my-indentitypool-id>',
Logins: {
'cognito-idp.eu-central-1.amazonaws.com/<my-userpool-id>':
sessionStorage.getItem('id_token')
}
});
AWS.config.credentials.get(function(err){
if (err) {
console.error(err);
}
console.log("Authenticated");
cisp = new AWS.CognitoIdentityServiceProvider();
});
当管理员想要创建用户时:
cisp.adminCreateUser(params, function(err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
});
但是,据我了解,这将允许Web应用程序的所有用户拥有 Admin 特权,因为IAM角色与身份池相关联,而不与用户本身相关联。
有没有简单的方法可以实现这一目标?
如果有任何不清楚的地方,请随时提出问题,并在此先感谢您的帮助。