Javascript AWS Cognito如何安全?

Javascript AWS Cognito如何安全?,javascript,amazon-web-services,amazon-s3,aws-sdk,amazon-cognito,Javascript,Amazon Web Services,Amazon S3,Aws Sdk,Amazon Cognito,我试图集成AWS cognito用户池,但我觉得它不再安全。因为登录中接收的id令牌包含用户池id。使用该用户池id,任何人都可以访问用户详细信息列表 示例-下面显示了我的id_令牌数据,我可以在iss字段(us-east-1_i1SXXXXX)中清楚地看到我的用户池id 因此,使用该用户池id,我可以检索列表用户,然后编辑任何用户详细信息 检索用户详细信息- var AWS=require('AWS-sdk'); var AWSCognito=require('amazon-cognito

我试图集成AWS cognito用户池,但我觉得它不再安全。因为登录中接收的id令牌包含用户池id。使用该用户池id,任何人都可以访问用户详细信息列表

示例-下面显示了我的id_令牌数据,我可以在iss字段(us-east-1_i1SXXXXX)中清楚地看到我的用户池id

因此,使用该用户池id,我可以检索列表用户,然后编辑任何用户详细信息

检索用户详细信息-

var AWS=require('AWS-sdk');
var AWSCognito=require('amazon-cognito-identity-js');
var util=require('util');
变量参数={
用户名:“”,
密码:“”,
UserPoolId:'us-east-1_i1SGXXXXX',//只需粘贴id令牌用户池
ClientId:'zzzzzzzz',//只是随机字符串
AWSRegion:'us-east-1'//地区
}
AWS.config.update({region:params.AWSRegion});
变量池数据={
UserPoolId:params.UserPoolId,
ClientId:params.ClientId
};
var userPool=newawscognito.CognitoUserPool(poolData);
var userData={
用户名:params.Username,
池:用户池
};
var cognitoUser=new AWSCognito.cognitoUser(userData);
var cognitoidentityserviceprovider=new AWS.cognitoidentityserviceprovider();
cognitoidentityserviceprovider.listUsers({UserPoolId:params.UserPoolId},函数(err,数据){
如果(错误){
日志(err,err.stack);
}否则{
console.log(data.Users);
}

});
如果您拥有
userpool
id
,您不能只是“询问”Cognito用户详细信息,因为:

用户池上的访问由AWS的IAM管理(由您/管理员提供),因此您可能没有身份验证 通过IAM强制执行用户池?!我对此深表怀疑

显然,如果我的web编写的web应用程序可以访问userpool,那么我可以要求做什么 想要处理用户池


此外,您的应用程序在用户池中的设置是什么?

如果这个问题仍然相关,您是否碰巧在隐式获得Cognito管理员权限的机器上执行代码?例如,如果它在您的笔记本电脑上运行,您的笔记本电脑是否有包含
凭证
文件的
.aws
目录?如果它作为Lambda函数运行,Lambda函数是否被授予具有Cognito admin权限的角色?

您在哪里运行此示例代码?只需通过替换用户池id来运行我的第一个代码,然后您就会看到。进一步检查此链接-(根据此链接,仅需要用户池id)用户池的IAM设置是什么?用户池中的应用程序设置是启用基于服务器的身份验证的登录API(ADMIN\u NO\u SRP\u AUTH)。IAM设置VAR参数与此无关={UserPoolId:'STRING_VALUE',/*必需/AttributesToGet:['STRING_VALUE',/more items*/],筛选器:'STRING_VALUE',限制:0,分页肯:'STRING_VALUE'};cognitoidentityserviceprovider.listUsers(参数,函数(err,数据){if(err)console.log(err,err.stack);//发生错误,否则console.log(数据);//响应成功});aws cognito只需要用户池id,其他什么都不需要