`

【转】我理解的权限管理设计二

 
阅读更多
         任何一个系统最基础的莫非资源、用户、权限之前的管理,无论做什么样的产品都需要权限系统来支撑,只是对于不同的权限系统需要不同级别的权限管理底层进行支撑。
 
        首先明确一下权限管理系统的概念;权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。目前可以归纳为简单的模型,如下图:
 
权限管理主要分为两大类:
一、资源管理认证
1、功能级的权限验证逻辑非常简单。查看该当前登录用户的角色是否包含该功能的权限。如果有,则表示有权访问,否则表示无权访问。对于WEB系统,一般定义一个Filter就可以完成权限验证,无需在各个程序入口进行权限判断。程序伪代码如下:
// 获取访问功能
String url=request.getRequestPath();
// 进行权限验证
User user=request.getSession().get(“user”);
boolean permit=PrivilegeManager.permit( user, url );
if( permit ) {
chain.doFilter( request, response );
} else {
// 可以转到提示界面
}
2、页面内嵌业务相关
功能级别的只能使用页面的是否能够正确的访问不能直接代表,如果对于一个比较复杂系统,涉及到的问题可以是一个用户他只有查询的功能,没有业务操作的权限,这样对于我们上述的简单权限认证明显会感觉力不从心可以对前台按钮级别的显示进行效果的封装,在现实的时候进行按钮是否显示的判断,这样也就直接屏蔽了按钮级别的权限任务操作
二、数据权限认证
 目前,数据级权限管理领域,一直没有统一的技术。大体上,软件开发人员采用如下技术:
1,硬编码,也就是将这种逻辑以if/else等形式与业务代码耦合在一起,这种情况居多;
2,使用规则引擎,也有一些企业将这种逻辑以规则形式提出来,并使用规则引擎解析规则;
3,使用第三方专业软件,有开源中间件Ralasafe;开源框架Spring Security;商业产品Oracle Entitlements Server,IBM Tivoli Access Manager。
硬编码形式弊端是非常显然的。耦合性强,难以测试;系统组件复用率低;系统后期改动代价非常大,牵一发而动全身。
使用规则引擎可以解决很多问题,学习难度尚可。但规则引擎并不是专业用于权限管理的,所以对于复杂一些的权限管理,就显得力不从心。
Ralasafe和Oracle、IBM的商业产品一样,都是中间件形式。对应用系统和应用数据库结构没有要求。都有管理界面进行直接操控管理,而且都能在线进行测试。相比较,Ralasafe还可以控制查询权限(即从系统查询订单、查询客户等),Oracle、IBM的商业产品没有这方面功能;从产品学习难度来看,Ralasafe只要有一些IT经验,就能快速上手;Oracle、IBM产品即使是专业人员,也难以掌握。
Spring Security是框架,需要对你的应用系统进行改动,你的系统必须在该框架进行设计编写。它只是帮助开发人员将权限提取出来了,但数据级权限还需要开发人员开发Voter。而且配置工作巨大,难以测试。
虽然上述提到的产品,都是Java产品。但Ralasfe和Oracle、IBM的商业产品,以中间件形式,可以部署在独立服务器上,使用web service等方式与非Java系统交互。
 
分享到:
评论

相关推荐

    权限管理系统设计方案

    权限设计的核心在于理解用户、组、角色和权限这四个基本概念及其相互关系。 1. **权限设计概念** - **权限资源**:权限资源是系统中所有可控制的权限构成的集合,这些权限呈现出层次结构。例如,系统管理下有用户...

    通用权限管理系统设计篇

    在这个主题下,我们将深入理解权限管理的核心概念、设计原则以及实现策略。 一、权限管理基础 权限管理主要涉及三个核心概念:用户(User)、角色(Role)和权限(Permission)。用户是系统的实际操作者,角色是一...

    通用权限管理系统的设计与实现

    根据给定文件的信息,我们可以提炼出以下知识点: 首先,标题“通用权限管理系统的设计与实现”...通过理解这些知识点,开发者可以更好地设计和实现满足自己需求的权限管理系统,以保障应用程序的安全性和可维护性。

    角色权限管理设计方案

    本文将深入探讨“角色权限管理设计方案”,基于提供的描述和标签,我们将详细阐述这一主题,以便理解如何有效地设计和实现一个权限控制系统。 首先,我们要明白权限管理的核心目标是确保用户只能访问他们被授权的...

    用户权限管理设计与实现

    在本文中,我们将深入探讨用户权限管理的设计与实现,基于提供的文件名"实现业务系统中的用户权限管理--设计篇.docx"和"实现业务系统中的用户权限管理--实现篇.docx"来解析这一主题。 首先,我们要理解用户权限管理...

    权限管理及数据库设计

    在逻辑设计阶段,将ER模型转换为关系模式,遵循第一范式(1NF)、第二范式(2NF)和第三范式(3NF),以消除数据冗余和异常。物理设计阶段,会根据具体数据库管理系统选择合适的索引策略、分区方法和存储方式,以...

    通用权限管理概要设计说明书

    在《通用权限管理设计篇(二)》中,数据库设计是关键部分,包括数据表的设计规范、字段类型选择、索引策略以及数据校验规则等。合理的数据库设计能提升系统的性能和数据一致性。 《实现业务系统中的用户权限管理--...

    实现业务系统中的用户权限管理--设计篇

    在构建复杂的业务系统时,用户权限管理是至关重要的一个环节,它确保了系统的安全性,防止未经授权的访问和操作。本文将深入探讨用户权限管理的设计原理、常见模型以及实施策略。 一、用户权限管理概述 用户权限...

    通用角色权限管理系统设计

    ### 通用角色权限管理系统设计详解 #### 一、引言 在现代软件开发过程中,权限管理系统作为必不可少的一部分,其重要性不言而喻。随着业务的发展和技术的进步,系统权限管理需求日益多样化,如何构建一个既灵活又...

    web网站权限管理系统设计与实现

    首先,我们要理解权限管理系统的概念。它是指通过定义和控制用户对资源的访问权限,确保只有合法用户在授权范围内进行操作,防止非法访问和恶意破坏。权限管理系统通常包括用户管理、角色管理、资源管理和权限分配四...

    用户权限管理设计方案

    综上所述,用户权限管理设计方案涉及数据库表结构设计、权限模型选择、权限管理策略以及用户体验优化等多个方面。对于初学者来说,理解这些基本概念并能实际应用,将有助于构建出安全可靠的多用户系统。

    权限管理系统通用设计.docx

    【权限管理系统通用设计】 权限管理系统是现代应用系统中不可或缺的一部分,它确保了用户只能访问其被授权的操作和数据。设计一个灵活、通用且方便的权限系统可以极大地提高系统的安全性,并简化管理流程。以下是对...

    通用权限管理系统(设计文档,数据库,及Web和WPF两种实现方式)

    首先,"通用权限管理系统"的设计文档是理解整个系统架构和设计思路的基础。设计文档通常包括系统需求分析、模块划分、数据库设计、接口定义等内容,有助于开发者快速理解系统的整体逻辑和操作流程。通过对设计文档的...

    基于RBAC模型的通用权限管理系统的设计

    在IT领域,权限管理系统是确保信息安全和访问控制的关键组成部分。基于RBAC(Role-Based Access ...在设计这样的系统时,需充分理解RBAC的各个组件和原则,并结合实际业务需求,构建出符合企业特性的权限管理架构。

    权限系统设计思路与设计方案

    2. **管理者设置**:管理员可以为用户分配多个权限值,如Rank字段,表示用户可管理的部门或模块。通过比较用户Rank与被管理对象的字段,判断用户是否有权限操作。 在实现过程中,数据库设计是关键: 1. **元权限**...

    权限管理demo以及表设计、精美后台页面html

    权限管理是IT系统中至关重要的一个环节,它涉及到用户对...总的来说,这个"权限管理demo"是一个全面的示例,涵盖了从数据库设计到前端界面展示的整个流程,对于学习和理解权限管理系统的设计和实现具有很高的参考价值。

    JAVA用户权限管理概要设计说明书-外发版

    在用户界面设计时,应考虑权限控制的可见性和透明度,确保用户能够理解并接受他们的权限范围。 最后,安全测试是验证权限管理系统有效性的关键步骤。这包括模拟不同用户角色进行功能测试,确保权限分配正确;进行...

    授权到窗口按钮的权限管理.rar_c#权限管理_授权_授权管理_权限_权限管理

    本文将深入探讨C#中的权限管理系统,包括授权、授权管理以及权限控制的相关概念和实践方法。 首先,我们要理解“权限”这一核心概念。在软件系统中,权限通常指的是用户或角色对系统资源(如文件、功能、窗口按钮等...

    工资管理系统数据库设计报告(数据库课程设计).doc

    工资管理系统数据库设计报告是信息技术学院信息管理与信息系统专业的一份课程设计报告,旨在通过实际操作来学习和理解数据库系统的设计与实现。这份报告涵盖了多个关键阶段,包括需求分析、概念设计、逻辑设计以及...

    java 权限管理设计

    首先,我们需要理解权限管理的基本概念。权限管理涉及到对用户或角色访问资源(如文件、数据库记录、系统功能等)的控制。它通过定义、分配和执行规则来确保只有授权的用户才能执行特定的操作。在Java中,这通常通过...

Global site tag (gtag.js) - Google Analytics