将自定义角色添加到 AWS Cognito 用户池访问令牌

use*_*744 2 openid-connect amazon-cognito aws-userpools

我正在使用 AWS Cognito 用户池来保护我的 Web 应用程序、移动应用程序和 API。我有一个定义了角色和权限的数据库。我想在登录过程中将“角色”添加到访问令牌,这样我就不需要进行数据库调用来检查用户角色。

我将无法使用 Cognito 自定义属性,因为人们可以从前端创建自定义角色,并且所有这些信息都保存在数据库中。

Gar*_*her 5

我认为 Cognito 不支持这一点。此外,自定义角色在授权服务器中更难管理,因为它们是经常更改的域数据。

另类选择

  • 从您自己的数据库查找用户角色
  • 将角色存储在 ClaimsPrincipal 中
  • 但只有在第一次收到令牌时才执行此操作
  • 使用相同令牌缓存后续 API 请求的声明

这使您能够将数据存储在正确的位置,同时还为您的 API 提供授权请求所需的内容,并表现良好。

此设计模式的资源

可扩展的解决方案

可以自由地以适合您的方式调整上述模式。主要目标是让每个 API 能够轻松管理和扩展用于识别和授权的数据。