我的当前项目是在 AWS 上,使用 Cognito 和 Lambda 微服务。我们使用 DDD 设计了微服务,并正在实现基本功能。
然而,业务需要 API 用户能够被归类到他们所属的客户公司,并且只能访问该客户公司的数据以及任何基于角色的认证。
这不是完整的多租户解决方案,因为每个用户将使用相同的网站,但其帐户将与特定客户相关联。
我阅读的有关在 AWS 中执行此类操作的所有内容都建议为每个客户使用一个用户角色或池,并在创建时将用户与其关联,但我们不想这样做,因为客户通常由 2-3 个用户组成,而且有很多客户。这将很快变得难以维护,涉及太多用户池。
我尝试通过“传统”方法来解决这个问题,例如将专门设计用于通过调用用户微服务向每个请求添加客户端数据的域服务添加到架构中,但这似乎过于复杂。我还考虑改变架构,将每个微服务中的基本用户和角色信息包括在内,但这似乎很混乱。
我的问题是,是否有官方支持的方法可以通过编程方式向AWS Cognito配置文件添加数据,并以这种方式使客户端管理员在账户创建后能够通过前端网站进行更改,即使只是通过令牌中的clientId字段。
如果没有,那么有类似问题经验的人会推荐什么替代用户池建议呢。
谢谢。
编辑:
我也一直在调查使用Cognito配置文件上的属性进行此操作的几种方法,如此处所述。看起来这是实现我尝试实现的目标的方法,但我仍然想听听其他选择或建议。