首页 > 解决方案 > 基于 AWS 功能的许可

问题描述

我正在设计一个将部署到 AWS 的产品。它将Cognito用于用户身份验证。这将是一个多租户应用程序。

该应用程序具有许多模块/功能。定价取决于客户选择的功能。

请提供有关如何检查该功能是否获得许可的指导。我不想将逻辑放在每个 web api 端点中。

标签: amazon-web-servicesmulti-tenantsaasrbac

解决方案


您应该创建一个应用程序微服务(可通过 API 调用,但访问权限仅限于您自己的应用程序),它接收以下信息:

  • 已验证的用户 ID
  • 想要访问的服务
  • 资源级别信息,以防您需要细粒度的访问控制

身份验证微服务将咨询数据库,应用适当的业务逻辑并返回成功指示符。

最好:

  • 每个请求都应记录在审计跟踪中
  • 如果访问被拒绝,返回一条错误消息,提示原因(例如,“此功能需要订阅 XYZ 模块”)
  • 使用某种形式的缓存使查询超快(例如 DAX for DynamoDB 或 ElastiCache)

许可系统通常比实际应用程序更复杂!


推荐阅读