首页 > 解决方案 > AWS 认知授权

问题描述

我有一个需要身份验证和授权的应用程序(node.js)。我的应用程序需要访问 postgres 数据库,还需要继承(角色等)

实现该选项的一种选择是使用 aws 的 cognito 服务(该应用程序将正确托管在 aws 上 - 不确定)

所以问题是

  1. cognito 服务是否支持使用不是 aws 上的服务的数据库对 node.js 进行授权?(我读到“身份池”适用于 mariaDB 等 AWS 服务)
  2. 如果我的应用程序将在 heroku 上(而不是在 aws 上),我也可以使用 cognito 服务(用于授权)?
  3. cognito 是否支持角色/用户继承?

Tnx

标签: amazon-web-servicesauthorizationamazon-cognito

解决方案


Cognito 身份池用于授予对 aws 服务的访问权限。用户池用于将用户凭据交换为令牌,该令牌可以包含有关用户的其他信息,一旦解码。所以是的,您可以仅使用用户池进行身份验证。您的用户属性可以包含与该用户需要访问的服务相关的信息。

但是,如果您计划存储数据库凭证,我建议您使用 AWS Secrets Manager 来存储您的数据库凭证并授予 cognito 用户访问此密钥的权限。在这种情况下,您需要同时使用用户池和身份池。

  1. 不是直接的,但您可以使用它来访问存储数据库凭据的机密管理器。
  2. 是的,您可以在任何地方使用 cognito。但是,它将连接到 AWS 以授予您令牌。这些令牌仅在 AWS 上被识别。这就是为什么您需要使用它们来访问可用于访问您想要的任何其他服务的其他秘密。
  3. Cognito 支持群组。我不确定这是否是您所说的继承。您可以在组中拥有基于令牌的角色。

推荐阅读