初步了解权限管理模型
为什么需要权限管理?
-
安全性:防止误操作、人为破坏、数据泄露。 数据隔离:不同的权限能看到的以及操作的数据不同 明确职责:不同的角色所做的操作和所看到的数据不同
权限管理的核心是什么?
理想中的权限管理?
-
实现角色级的权限管理: 角色级的权限管理都是基于 RBAC 模型实现的。这种模型几乎能覆盖所有场景,同时能够满足需求的不断变化,许多临时的调整也能很好的应对。基于 RBAC 的权限的管理,很好的完成了对权限的抽象,只需要根据不同的场景进行不同的实现就好。相对于直接对用户绑定权限,RBAC 可以对用户进行更好的扩展。 可实现功能级、数据级权限: 功能级权限就是功能权限管理技术,一般就使用 RBAC 权限管理模型。功能级权限管理系统会提供如下功能: 1、角色管理系统由用户定义角色赋予权限; 2、用户角色管理界面,由用户给系统用户赋予角色; 3、支持用户定义权限。 目前数据级权限管理没有统一的技术,大体上采用的是如下技术: 1、硬编码,这种情况居多,但是弊端非常显然,耦合性高,不易测试,不易维护; 2、使用规则引擎,有一些企业将这种逻辑用规则的形式体现出来。这可以解决很多问题,但是规则引擎并不是专业用于权限管理,所以对于一些复杂的权限管理就显得力不从心了; 3、使用第三方专业软件。 简单易操作,能够实现各种需求: 所有涉及到权限相关的都能有相关的页面可操作,同时能提供一个页面能查询到一个用户当前的权限列表。需要的页面如下: 1、权限管理界面; 2、角色管理界面; 3、用户管理界面; 4、角色和权限关系维护界面; 5、用户和角色关系维护界面。
开源的权限管理项目
-
Spring Security: 是一个能够为基于 Spring 的企业应用系统,提供声明式的安全控制解决方案的安全框架。 它提供了一组可以在 Spring 应用上下文配置的 Bean,充分利用了 Spring 控制反转、依赖注入和面向切面编程功能。对已有系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。 Apache Shiro: Shiro 是一个强大且易用的 Java 安全框架,执行身份验证、授权、密码学和会话管理。Shiro 有易于理解的 API。
