0 引言

随着国家电网SG186工程建设的深入,企业门户的建设也开始由省电力公司一级向地市供电公司一级延伸。根据国家电网门户典型设计,河南省电力公司采用了虚拟方式建设全省各地市门户。由于虚拟门户的软、硬件及应用均为集中部署,全省用户访问同一套门户应用服务,这给虚拟门户如何进行安全的权限管理带来了挑战,大量用户的赋权和角色的管理工作将给管理员巨大的工作压力。为了解决这一难题,充分利用SG186工程中的统一身份管理建设成果,将LDAP目录与WebLogic相结合,从而实现了小工作量,高灵活度的虚拟门户权限管理。

通过对这一解决方案的探讨,希望在虚拟门户的权限管理解决方案上起到一点抛砖引玉的作用。

1 虚拟门户用户权限控制的目标

    1.1 虚拟门户与实体门户

在探讨虚拟门户的权限控制方式前,有必要对什么是虚拟门户、什么是实体门户做一对比说明。通俗的说,当只有一个单位使用门户系统时,这时这个单位独占了门户系统的所有软、硬件和应用资源,这时这个企业门户系统就称为实体门户系统。当有多个单位共享一套软、硬件和应用资源,通过技术手段使每个单位在逻辑上又拥有自主的应用管理权限时,这样的门户系统我们就称为虚拟门户系统。

实体门户与虚拟门户的重要区别在于是否共享一套应用。如果仅仅是共享软、硬件资源,而应用是互相独立部署的,则不能称之为虚拟门户系统。

就河南省电力公司来说,如果采用实体门户的方式来建设全省门户(仅包括省本部和18个地市公司)的话,就需要19套软、硬件平台及相应的应用部署。而采用虚拟门户,则仅需1套,在维护便利性及成本上有很明显的优势。

实体门户在运维管理上较为复杂,每一个部署了实体门户的单位,均需要考虑可靠性,性能、数据安全、备份、部署等事务,这些分散在各个单位中的事务增加运维的成本的复杂性。而采用虚拟门户,则与数据安全及硬件相关的运维事务可进行集中、统一的管理,相比较来说,每一个部署虚拟门户的单位,仅需进行与自己相关的权限管理即可,与平台相关的运维管理则不需要关注,这将在整体上,大大降低运维成本和复杂性。虚拟门户系统虽然在整体上降低了运给成本,但运维事务的集中,也给如何保证统一管理下的权限管理独立性和访问互相隔离带来了挑战,而如何解决这个问题,就是本文要探讨的目标。

    1.2 虚拟门户的权限控制目标

以河南省电力公司为例,全省共同有二级单位30多个,其中所属的地市供电公司就有18个。要在一个软,硬件平台上,实现对这些二级单位虚拟门户的应用,在权限上就必须要求在这一平台上能够实现以下管理目标:(1)各单位能够对自己的用户和组织进行独立管理,(2)能够进行角色的创建、删除、修改管理;(3)能够进行门户功能单位的访问权限管理;(4)各单位间的权限管理行为互不干扰,相互独立,(5)管理员权限能够分级代理,逐级授权。

应用示例如图1所示。

图1 虚拟门户权限控制的应用示例

2 基于LDAP的WebLogic权限控制实现

    2.1 基于LDAP的用户及组管理

(1)LDAP概述。LDAP目录是一种特殊的数据库系统,它专门针对读取、浏览和搜索操作进行了优化。目录一般用来包含描述性的、基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作所需要的复杂的事务管理或回滚策略,目录的更新一般都非常简单。这种目录可以存储包括个人信息,Web链接、JPEG图像等各种信息。LDAP是运行在TCP/IP之上的访问协议。LDAP目录中的信息是按照树型结构组织的,具体信息存储在条目(entry)的数据结构中。条目包含了多个属性,每个属性由一个类型和多个值构成。每个条目使用一个识别名(DN)标识,每个条目DN的各个元素称为相对识别名(RDN)。这个树型结构类似于文件系统,RDN相当于文件,DN相当于文件的绝对路径。在LDAP标准中定义了常用的对象类(object Class)及其相关的必需和可选的属性(attribute)。目前河南省电力公司已经建设了覆盖拿省的用户目录。

(2)LDAP组及动态组概念。在LDAP中有两种表示集合的方法,分别是静态组及动态组。静态组也常简称为组,创建静态组的时候也同时确定了组成员。动态组则是创建一定的规则,让LDAP服务器根据规则,动态决定组的成员对象。静态组在使用过程中,如果不人为干预,则组内成员不会发生变化,这也决定了静态组不适合于在需要将大量人员放在一个集合时的操作,当需要把1000或10000人放在一个静态组中时,工作量是惊人的。而动态组是根据规则自动将符合规则的人员加入组内,因此动态组更适合在需要对大量人员建组时的操作。例如:部门A,部门B的所有人员需要创建在一个组内,这两个部门人员数量达到了500人, 由于每个人员都有一个所属部门的编号,因此只需将人员的所属部门编号作为动态组的规则,就可以将这两个部门的所有人员放在一个组内,以实现作为权限与资源分配的实体。

由于动态组是根据规则自动决定成员对象,因此在性能上会比静态组更为消耗计算机资源,但随着服务器硬件水平的提高,目前一般的服务器都有4个CPU内核及4G的内存,硬盘转速普遍都在10000转/min,静态组对计算机资源消耗可不用考虑。

2.2 WebLogic门户中间件的权限架构

WebLogic Server提供全面的安全体系结构,其安全框架是依照J2EE安全规范定义的,包括用户级和组级访问控制列表(ACL)、基于密码的隐私权和用户验证、域、secure Sockets Layer(SSL)数字签名以及其他基于标准的安全措施。

    Oracle WebLogic Security Framework的一些主要功能包括:

(1)身份验证:借助用户名与口令的组合或数字证书,确定用户的身份;(2)授权:规定应当提供给每个经过身份验证的用户的应用功能,服务和数据资源,(3)加密:确保内部数据的安全及秘密地进行通信和网络数据传输的安全;(4)审核:提供记录所有与安全性相关的活动的功能;(5)可插式安全性框架:支持与第三方安全性解决方案的集成,允许Oracle WebLogic Serve应用能够充分利用市场上“最好的”安全性解决方案所提供的全部功能,(6)用户和用户组:用户对应于应用程序中的一个账号,通常具有用户名和口令。用户组是多个用户组成的集合,通常把具有类似访问系统资源权限的一组用户定义到一个用户组中;(7)角色:角色是抽象的和逻辑意义上的用户组,由应用程序开发人员定义。资源的访问权限赋予角色,再通过角色把权限赋予用户;(8)单点登录:无须任何额外的编程,Oracle WebLogic Server应用就自动能够实现单点登录。在Oracle WebLogic Server应用的范围之内,用户不必重新进行身份验证;

其中身份验证、授权,用户和用户组、角色功能与本文所探讨的权限管理相关。

    2.3 基于LDAP的WebLogic用户权限管理

基于LDAP的WebLogic用户权限管理就是充分利用LDAP的静态组和动态组功能结合WebLogic的角色权限控制策略,实现对人员的分级权限控制。

    2.3.1 Webkogic权限策略

“角色策略”由角色名和角色定义组成,使用。安全策略”将“委托管理”角色映射到门户资源上。将资源(门户功能)的访问权限限制于仅被授予了特定安全角色的那些用户。WebLogic首先使用身份验证流程测试候选用户。身份验证流程通常是登录流程,它要求候选用户提供用户名和密码。如果候选用户成功通过此质询,将授予该用户一组标识:其中一个标识是其用户名标识,其他标识是一组该用户具有其成员资格的组。用户的用户名标识和组标识称为用户的“委托人”,可将这些委托人视为一组凭据,用户在访问某些由授权流程所保护的资源时需要提供这些凭据。其次是授权,测试用户是否已被授予了访问受保护资源所需的角色,如果这些用户已被授予所需角色,则他们可以访问资源;否则,将被拒绝访问。如果用户的一个委托人已被授予了特定角色,则该用户也被授予了该角色。

图2说明了WebLogic中组的与角色共同作用来实现功能权限控制的方式。

图2 权限控制的方式

从上述说明中,可以发现,组和角色在WebLogic权限控制起主要作用,角色用来决定权限的集合,组用来决定人员的集合,再通过角色与组的映射,将权限传递给用户,最终实现用户根据所分配权限来决定访问范围。

    2.3.2 WebLogic与LDAP组功能结合实现分级权限管理

知道了角色及组在WebLogic门户中对权限控制是起主要作用,而LDAP对组的管理又非常灵活,因此将两者结合起来,既能发挥WebLogic强大的权限管理功能,也能发挥出LDAP的速度快,灵活性高,管理工作量小的优势。

WebLogic在其服务器的安全领域的设置功能中提供了“身份验证提供程序”功能,这一功能预置了与LDAP、数据库等多种常见用户数据存储的访问接口,通过设置适应于LDAP的“身份验证提供程序”,能够将LDAP中的用户及组数据全部提取到WebLogic中,这样就可以在WebLogic中方便地使用LDAP中的用户和组来进行权限的管理。

图3和图4是经过设置“身份验证提供程序”后,从WebLogic管理控制台看到的来自于LDAP中的用户及组信息。“ggnovelled”是身份验证提供程序的名字。

图3 来自于LDAP的用户数据

图4 来自于LDAP的组数据

通过将来自于LDAP中的组分配给相应的WebLogic的角色,就可实现特定组的用户只能访问特定的内容。

例如:河南省电力公司有18个地市供电公司,则对应就有18个虚拟门户,如果要保证每个单位的用户只能访问本单位的虚拟门户。则需要将每个单位的全部用户放在一个组中,将此组与可访问本单位的WebLogic角色挂接。在不使用LDAP动态组的情况下,要将全部用户置人一个组中,工作量是巨大的,通常一个地市供电公司拥有近千人员,这有可能会耗费掉管理员一整天的时间,而使用LDAP动态组,则将此工作量降低为只需要几分钟的时间,这将大大降低管理员工作强度。

3 结语

在虚拟门户的权限管理上。如果完全依赖于WebLogic自身提供的能力。将会使管理工作变得十分巨大,特别是在地市供电公司众多的河南。而充分利用LDAP目录的优势,并与WebLogic结合,则有效的解决了这个问题。在面对问题时,只要充分了解各类软件或平台的优缺点,通过它们之间的互补,则很多问题都会迎刃而解。

注:此文章是我转载的,因为很好,所以想分享给大家。--kevinboy

转载于:https://www.cnblogs.com/kevin-boy/archive/2012/12/13/2816139.html

基于LDAP的WebLogic虚拟化统一用户权限管理相关推荐

  1. mysql cluster 用户_mysql cluster统一用户权限

    统一用户权限 使用mysql cluster由于存放用户信息的表user是指mysql库里面的,而且这些表是MyISAM存储引擎的.如果希望所有的sql节点都有统一的用户权限,可以把创建用户的脚本在每 ...

  2. C#上位机开发源码基于RS485通讯总线的ModbusRtu协议,支持用户权限管理

    C#上位机开发源码 上位机项目源代码 采用基于RS485通讯总线的ModbusRtu协议,支持用户权限管理.sqlite数据库.实时曲线.历史曲线.历史报表.导出Excel.主界面布局可调带记忆等功能 ...

  3. 统一用户权限管理系统

    统一用户权限管理系统 演示地址:http://tdog7.oschina.mopaas.com 简介:本系统为统一的细粒度授权管理和用户统一身份管理及单点认证支撑平台.每个接入的系统都支持自定义权限. ...

  4. 统一用户权限管理系统(正式版)

      该系统已停止更新,已发布另外一个平台,演示地址:http://itgap.net 系统名称:统一用户权限管理系统   演示地址:http://tdog7.oschina.mopaas.com/   ...

  5. SpringBoot 基于Shiro + Jwt + Redis的用户权限管理 (三) 鉴权

    项目Github地址: https://github.com/baiye21/ShiroDemo SpringBoot 基于Shiro + Jwt + Redis的用户权限管理 (一) 简介与配置 S ...

  6. 统一用户权限管理系统 TDog7

    (该系统已停止更新,已发布另外一个平台,演示地址:http://itgap.net) 系统名称:统一用户权限管理系统 简介:本系统为统一的细粒度授权管理和用户统一身份管理及单点认证支撑平台.每个接入的 ...

  7. C#上位机开发源码 采用基于RS485通讯总线的ModbusRtu协议,支持用户权限管理

    C#上位机开发源码 采用基于RS485通讯总线的ModbusRtu协议,支持用户权限管理 采用基于RS485通讯总线的ModbusRtu协议,支持用户权限管理.sqlite数据库.实时曲线.历史曲线. ...

  8. RDIFramework.NET ━ 9.8 用户权限管理 ━ Web部分

    RDIFramework.NET ━ .NET快速信息化系统开发框架 9.8 用户权限管理 -Web部分 在实际应用中我们会发现,权限控制会经常变动,如:需要调整角色的分配,需要收回与授予某些角色.用 ...

  9. Jenkins拾遗--第三篇(用户权限管理)

    采访过很多实用Jenkins的同学,发现Jenkins的安全是一个很薄弱的地方.很多公司用作生产部署的Jenkins安全管理都不是很规范,就更别提测试用的Jenkins了. 其实Jenkins是一个很 ...

最新文章

  1. Google出品,EfficientNet在目标检测达到最新SOTA | CVPR 2020
  2. 58 第一个工程项目(Celery)
  3. skb_shinfo(skb)-dataref 含义
  4. 《大话数据结构》第9章 排序 9.7 堆排序(上)
  5. Apollo 2.0发布前 试乘百度L3、L4级自动驾驶汽车
  6. u盘排序软件_华硕电脑u盘启动设置
  7. node --- 后端使用bcrypt对密码进行加密处理
  8. 使用VScode + PicGo 写markdown 以及github图片加载不出的问题
  9. Facebook 重金悬赏 Hermes 和 Spark AR 漏洞
  10. openresty的html文件夹在,Openresty 配置访问静态文件,拆分路径
  11. Web实训项目--网页设计(附源码)
  12. Web 方向学习路线
  13. java菜鸟驿站_RxJava菜鸟驿站(一)
  14. 力扣437(前缀和解法)
  15. 优盘扩容修复 u盘工具
  16. Linux下开启FTP的21端口
  17. 欠定方程组的最小范数解
  18. vmos虚拟位置_VMOS Pro 虚拟大师一款在安卓手机运行虚拟机的app
  19. c语言输出形式tap间隔,C语言输出格式总结.doc
  20. mac 连接windows远程桌面软件Parallels Client

热门文章

  1. python面向对象属性_Python面向对象属性
  2. fwoa中做excel导入时page理解
  3. Java检查字符串是否包含中文字符
  4. 全新AI内参:量子位精心打磨,最新产业资讯、科研进展一文呈现
  5. 马斯克圣诞节晒太空飞船:明年4月测试,5年后飞火星
  6. 深度学习框架排行榜:找工作学TensorFlow,PyTorch搜索量逼近Keras
  7. 明星AI芯片公司Graphcore获红杉5000万美元投资
  8. chrome 浏览器的插件权限有多大?
  9. 进击的融合,浪潮推出全新SAS Switch储存设备SF-S1
  10. Unity3D中的线性插值Lerp()函数解析