【问题标题】:Application Based Authorization through AWS Cognito and React通过 AWS Cognito 和 React 进行基于应用程序的授权
【发布时间】:2022-12-05 16:28:32
【问题描述】:

我将 React Application 与 AWS cognito 集成以进行身份​​验证。然后我需要管理基于用户组的应用程序级别授权。是否可以在 cognito 端保留基于应用程序的权限:

例如:我将以 MANAGER 用户组身份登录,然后在 React Application 中,我需要在以身份验证用户 (MANAGER) 登录时基于 Cognito 响应来管理 UI 可见性和功能应用程序。

是否可能或应该使用单独的后端服务来管理所有用户级别的权限。

如果以 (MANAGER) 身份登录显示不同的 UI 可见性 + 功能 其他用户 (CLIENT) 显示不同的 UI 和功能

建议我开发 React + AWS cognito 身份验证 + 应用级别的最佳方法

我尝试了 AWS Cognito 集成,发现只有当我们访问另一个 AWS 服务时才会有基于角色的授权,但问题是不需要访问另一个服务,因为我需要在登录后在我的 React 应用程序中管理基于用户或基于用户组的授权作为经过身份验证的用户。

我通过创建 JAVA 身份验证服务应用程序存档了我需要的内容(基于应用程序的授权),并且所有身份验证流程 APIS 都有 REST api,并根据登录用户获得授权

数据库是 PostgresQL 有表:用户组、组、权限、策略

【问题讨论】:

    标签: reactjs amazon-web-services authentication authorization amazon-cognito


    【解决方案1】:

    是的,可以在 AWS Cognito 中管理应用程序级权限。 Cognito 提供了一个名为“用户组”的功能,允许您对用户进行分组并为这些组分配权限。然后,您可以使用 Cognito API 检索用户组,并使用该信息来控制 React 应用程序中的 UI 可见性和功能。

    这是如何实现的示例:

    在 AWS Cognito 控制台中,创建一个用户池并为您的用户定义属性和组。

    在您的 React 应用程序中,使用 Cognito API 对用户进行身份验证并检索用户的组。

    使用用户的组信息来控制 React 应用程序中的 UI 可见性和功能。例如,您可以使用 switch 语句来检查用户的组并根据组显示或隐藏某些元素,或者您可以使用像 React Router 这样的库来根据用户组控制对某些路由的访问。

    如果需要,您还可以使用 Cognito API 检索与用户组关联的权限,并使用这些权限来控制对应用程序中某些功能或数据的访问。

    总的来说,使用 AWS Cognito 进行身份验证和基于用户组的授权是在 React 应用程序中管理应用程序级权限的好方法。它提供了一种简单而安全的方式来管理用户身份验证和授权,而无需实施您自己的自定义解决方案。

    【讨论】:

      猜你喜欢
      • 2019-08-01
      • 2019-12-22
      • 2020-12-12
      • 2021-10-01
      • 2019-01-17
      • 2012-09-22
      • 2021-12-31
      • 2021-07-31
      • 2023-03-27
      相关资源
      最近更新 更多