【问题标题】:AWS Cognito User ManagementAWS Cognito 用户管理
【发布时间】:2020-02-06 13:17:10
【问题描述】:

在过去的几年里,我建立了一个基于 PHP 和 MySQL 的网站,用户可以在其中提交复印和 IT 请求。我希望使这个基于云而不是从本地网络服务器运行它。我最初的想法是让每个使用我的系统的公司作为 Web 服务器运行一个 EC2 实例,但是由于系统是基于 PHP 会话的,我假设安全性不会很好,所以我认为我需要转向更多使用 Cognito 进行用户管理的 AWS 系统和使用 Lambda 的 API 网关来完成从数据库获取数据的工作。我的问题是,我当前的系统有一个管理控制台,管理员用户可以在其中访问用户列表,并为他们分配权限(会话变量),允许他们访问特定页面。我将如何制作一个网页,用户可以在其中管理 Cognito 用户池中的用户,而无需授予他们对 AWS 控制台的访问权限。

【问题讨论】:

  • 您是否考虑过使用 CLI 并调用 AWS Cognito API,例如 update-user-pool?只要您指定的用户有权访问 CLI。
  • 我没有,我想做的是一个用户管理门户,公司的系统管理员可以进去查看所有用户(可能基于自定义属性,所以我可以使用一个用户池我所有客户的帐户)并将它们添加到组等中,以授予他们访问系统不同部分的权限,以及创建新用户。

标签: amazon-web-services amazon-cognito


【解决方案1】:

在您的 Lambda 函数中实施 Cognito AdminAddUserToGroup 操作,以便管理员用户管理您的用户所属的 Cognito 组。您的管理员将是唯一能够调用 Lambda 函数的 API 调用的人,因为他们将包含在 Cognito 管理员组中,并具有调用您指定为开发人员的 Lambda 函数的适当权限。

通过assigning roles for each Cognito Group 指定每个 Congito Group 可以访问的权限。

您还可以在后端解码 jwt 以确定发出请求的用户属于哪个 Cognito 组,并在前端使用 Amplify 根据组(链接等)管理前端的内容显示。可以在此线程中找到更多信息:How do I access the group for a Cognito User account?

我没有足够的分数来评论 CLI update-user-pool 建议,但希望您知道这不起作用,因为 1.) 它会影响整个用户池并影响用户池中的所有用户和 2.) 对于您的用户能够在您的应用程序中获得的访问权限,这将没有什么区别。

【讨论】:

    猜你喜欢
    • 2018-12-22
    • 2019-04-19
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2022-01-11
    • 2021-01-24
    • 1970-01-01
    • 2019-08-15
    相关资源
    最近更新 更多