DDD 用户域特定设置

DDD User-Domain specific settings

我目前正在开发负责身份验证的微服务(负责身份和权限的限界上下文)。我们有基于绑定到另一个域的用户角色的特定设置,但用于生成令牌

(像这样 https://developer.zendesk.com/rest_api/docs/core/custom_roles

举个例子

role_can_write_booking: true,
fetch_products_type : "all/forUsersCompanyOnly"

等等

我应该将此信息保留为 Identity BC 的一部分,还是每个域都应将其保留为设置的一部分。 例子: role_can_write_booking : true 在预订限界上下文中, fetch_products_type : "all/forUsersCompanyOnly" 在 Booking 产品限界上下文中。 ?

视情况而定。两种方式都需要权衡取舍。如果您将所有信息存储在身份上下文中,那么它需要了解所有其他上下文,并且需要在任何上下文中的某些权限或访问规则发生变化时进行更改。如果每个上下文都管理自己的权限规则,那么它们只需要了解自己。

您还需要考虑如何管理事物。是否有集中管理角色和权限的概念?

这还取决于角色需要的过程或细粒度以及域在身份/角色/权限等方面的复杂程度。

如果你有非常细粒度的角色(即 'Administrator'、'User'),那么我可能会按照让身份上下文管理用户帐户和角色的方式做一些事情,但是离开每个单独上下文的权限方面。即“这是一个具有角色 X 和 Y 的经过身份验证的用户”,然后每个单独的上下文确定这允许什么。