我目前正在开发负责身份验证的微服务(负责身份和权限的有限上下文)。我们根据与其他域绑定但用于生成令牌的用户角色进行了特定设置
(类似于此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"
有限内容。 ?
答案 0 :(得分:3)
这取决于。无论哪种方式都有取舍。如果您将所有信息存储在身份上下文中,那么它需要了解所有其他上下文,并且需要在任何上下文中某些权限或访问规则发生更改时进行更改。如果每个上下文都管理自己的权限规则,那么他们只需要了解自己。
您还需要考虑如何管理事物。是否有集中管理角色和权限的概念?
它还取决于角色需要的过程或细粒度以及域在身份/角色/权限等方面的复杂程度。
如果你有非常粗略的角色(即管理员'用户')那么我可能会做一些事情,就像让身份上下文管理用户一样帐户和角色,但将权限的一部分留给每个单独的上下文。我这是一个经过身份验证的用户,其角色为X和Y'然后每个单独的上下文决定了它允许的内容。