zoukankan      html  css  js  c++  java
  • RBAC基于角色的权限管理模型

    一、权限管理模型的必要性:

                  a. 安全性:防止误操作,防止数据泄露,保证信息的安全。

                  b. 数据隔离:保持不同的角色具有不同的权限,只能看到自己权限范围内的数据

    二、权限管理模型的发展:

                  a. 传统的权限管理:随着用户数量的增大和用户权限区别的增大,传统的权限管理需要针对每个用户依次管理,成本较高。

                  b. RBAC:Role-Based Access Control 用户-角色-权限,权限与角色相关联,用户与角色相关联,通过对用户赋予相应的角色,再去获取相应的权限,从而实现了用户与权限的解耦,具有很好的扩展性和通用性。

    三、RBAC的三个原则:

                  a. 最小特权原则:即通过对每个角色赋予相应的权限,通过对每个用户赋予相应的角色,从而实现给用户分配相应的权限,保证该权限不超过该用户完成其任务所需要的权限即可。

                  b. 责任分离原则:指的是针对敏感任务,分配两个责任上相互制约的两个角色,比如针对财务管理员和会计。

                  c. 数据抽象原则:主要是通过抽象许可权来实现。比如财务上的信用等抽象许可权。

    四、RBAC的数据库设计

                  a. 用户表

                  b. 角色表

                  c. 权限表

                  d. 用户角色表

                  e. 角色权限表

                 

    五、基于RBAC的实现流程

                  a. 首先针对权限的校验的业务逻辑在一个父类中实现,其余子类均需要实现该父类,从而实现针对用户的权限的控制。

                  b. 用户访问时,首先查询用户表判断用户的状态是否是可用。

                  c. 然后根据用户 id查询 用户角色表,得到用户的角色id

                  d. 根据角色 id 查询 权限角色表,得到该用户在该角色下的权限id

                  e. 根据权限 id 查询 权限表,得到该用户在该角色下的权限。

    六、主流的权限管理框架

                  a. Spring Security

                  b. Apache Shiro

  • 相关阅读:
    超棒的监控工具 DataDog Splunk 日志易
    API 接口设计 原则
    程序员 架构师 成长 设计 原则
    OAM 继续演进:阿里云携手微软与 Crossplane 社区发布 OAM Kubernetes 标准实现与核心依赖库
    首席架构师 码农总结 互联网整体解决方案
    《不抱怨的世界2》 读后感
    适合开发者的最佳Linux发行版
    大数据 消息 日志
    CRM 线索来源 获客方式
    微服务开发过程中需要注意的若干事项_逍遥子曰
  • 原文地址:https://www.cnblogs.com/Demrystv/p/11317961.html
Copyright © 2011-2022 走看看