适用于授权的AWS Cognito自定义用户角色

时间:2020-06-30 07:26:38

标签: amazon-web-services amazon-cognito

AWS cognito的文档建议了有关IAM的所有角色。如何发挥我的应用程序(资源服务器)可以理解的有意义的作用?

2 个答案:

答案 0 :(得分:3)

我在应用程序中广泛使用了AWS Cognito,我可以在这里尝试为您提供帮助。

使用Cognito,您所说的一切都是可能的。我相信您正在尝试找到一种模式,将您的应用程序角色映射到Cognito / AWS IAM角色。

可以将池中的所有Cognito用户隔离在不同的Cognito组下。文档在这里-> https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html

每个Cognito用户组都必须映射有相应的IAM角色(您可以自定义权限)。

现在,这些组需要与应用程序中的用户角色/组具有一对一的映射。

可以以两种不同的方式利用这些组。我们正在考虑具有UI层的设计模式(例如:AngularJS)-> AWS APi Gateway-> RestAPI(Lambda /作为Beanstalk / container / Ec2 / etc中的应用程序托管)

  1. 需要根据用户组显示UI控件。例如,超级管理员将以完全特权查看所有链接和菜单。但是对于普通的最终用户来说,有限的链接和菜单将是可见的。为了实现这一点,您可以使用AngularJS的某些插件(在您的情况下可能有所不同)来基于组信息控制UI的呈现。

  2. 通过将API网关的Authorizer配置设置为IAM / Cognito,可以引入一个授权层来保护API层。因此,在请求访问后端托管的API之前,API网关将检查所请求的用户组是否有权访问该API。

我希望这会有所帮助。

答案 1 :(得分:1)

不确定您的意思太多,但角色是用于访问AWS资源的。 Cognito可以与身份池一起使用,以向AWS资源授予临时凭证。这意味着您可以将服务器/ ec2实例放在配置了IAM身份验证的API网关后面,并在身份池中创建经过身份验证的角色,该角色允许对API GW进行HTTP调用。