Security ACL';的权限和业务逻辑

Security ACL';的权限和业务逻辑,security,permissions,business-logic,software-design,Security,Permissions,Business Logic,Software Design,我想知道人们在多用户应用程序中为用户分配权限和业务逻辑之间的界限在哪里 例如,如果用户可以访问多辆车,您是直接通过用户类将这些权限添加到用户的车对象集合中来分配这些权限,还是在ACL中分配这些权限并使用ACL检索用户有权访问的车列表 对于何时应使用ACL进行此类操作以及何时应将其作为业务逻辑的一部分,是否有任何指导原则?通常的做法是“基于角色的安全性” 例如,您可以设置两个角色“销售人员”和“维护人员” “销售人员”将拥有驾驶、加油和停车的许可 “维修”人员有权驾驶、维修和修理这套车 您不希望将

我想知道人们在多用户应用程序中为用户分配权限和业务逻辑之间的界限在哪里

例如,如果用户可以访问多辆车,您是直接通过用户类将这些权限添加到用户的车对象集合中来分配这些权限,还是在ACL中分配这些权限并使用ACL检索用户有权访问的车列表

对于何时应使用ACL进行此类操作以及何时应将其作为业务逻辑的一部分,是否有任何指导原则?

通常的做法是“基于角色的安全性”

例如,您可以设置两个角色“销售人员”和“维护人员”

“销售人员”将拥有驾驶、加油和停车的许可

“维修”人员有权驾驶、维修和修理这套车


您不希望将员工分配到一个或另一个角色。

是的,但您也可以将销售人员和维护作为域模型的一部分,作为员工的子类,并通过关联将关系分配给汽车类。这比使用基于角色的安全方法好还是坏。通常答案是“是”,因为您可以将登录、网络、文件访问等内容分组到基于操作系统的ACL中。这样,当新的销售人员被聘用时,你只需将他们加入团队,他们就可以获得他们需要的所有访问权限。