2

我应该将我的身份访问(身份验证和授权)放在共享内核中还是创建一个单独的有界上下文,例如:- IdentityAccess

  1. 如果我将身份访问权限放在共享内核中,那么共享内核将变得臃肿。共享内核应包含 BaseEntity 或 BasicValueObject 等基本合约,以简化开发过程
  2. 如果我选择在不同的有界上下文中进行身份访问,那么其他有界上下文将如何应用权限

请记住,身份访问将包含许多功能,例如用户登录和权限管理(创建用户、规则和组)

4

1 回答 1

1

身份访问不应包含权限管理;这些是属于单独上下文的业务功能,请参见 Martin Fowler 的这张图片:在此处输入图像描述

在您的情况下,它将是权限/角色/用户等,而不是客户和产品,它们都存在于两个有界上下文中。

所以你应该有:

  1. 身份验证/授权的上下文
  2. 权限管理的上下文
  3. 业务环境。

然后,您需要以这样一种方式组织代码,即用户交互始终通过 (1) 但对 (2) 和任意数量的 (3) 不透明。

具体来说,您不应该担心业务上下文中的权限,因为如果用户没有适当的权限,它永远不会被调用。

于 2017-03-01T11:34:41.687 回答