Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Cognito用户池用户的附加授权逻辑_Amazon Web Services_Aws Api Gateway_Amazon Cognito - Fatal编程技术网

Amazon web services Cognito用户池用户的附加授权逻辑

Amazon web services Cognito用户池用户的附加授权逻辑,amazon-web-services,aws-api-gateway,amazon-cognito,Amazon Web Services,Aws Api Gateway,Amazon Cognito,如果我使用AWS Cognito用户池,则可以指定用户的角色,然后检查该用户是否具有特定的角色,例如Admin,然后他/她才能访问资源,例如API Gateway。您可以使用Cognito用户池中的组,并在自定义授权器中验证该用户是否在adminGroup中: if (payload['cognito:groups'] && payload['cognito:groups'][0] === 'adminGroup') { admin = true; }

如果我使用AWS Cognito用户池,则可以指定用户的角色,然后检查该用户是否具有特定的角色,例如Admin,然后他/她才能访问资源,例如API Gateway。您可以使用Cognito用户池中的组,并在自定义授权器中验证该用户是否在adminGroup中:

  if (payload['cognito:groups'] &&
    payload['cognito:groups'][0] === 'adminGroup') {
    admin = true;
  }
这里的有效负载是您从identity token获得的。如果没有cognito:groups,那么用户就不在任何组中

另一种选择是利用用户池中的自定义属性。授权者中的验证逻辑应类似于上述逻辑

也可以使用其他解决方案,但这些解决方案位于用户池外部,例如,跟踪外部数据库中的用户角色

无论是组、自定义属性还是其他解决方案,都必须验证自定义授权者中的用户角色。这样,请求将在API网关端点之前到达自定义授权者。如果用户应该是管理员,但他不在adminGroup中或没有自定义属性“admin”,则在授权者中发出拒绝策略

希望这能回答你的问题