权限管理简说

xiaoxiao2024-04-18  23

权限管理需求

IT系统不断向前发展,企业对于IT信息系统的权限控制要求越来越严格。主要有以下几类:

功能控制。比如允许某些用户使用某功能,访问某页面。拒绝某些用户使用某功能,访问某页面。 更细粒度的控制。 数据行控制。同样的功能,不同用户访问的数据范围是不同的。比如总公司用户能查看所有客户资料;分公司用户只能查看本分公司及下属营业部客户资料;营业部用户只能查看本营业部客户资料。 数据列控制。同样的功能,不同用户访问的数据字段是不同的。比如总公司用户不能查看客户资料的联系电话和联系地址信息,可以查看客户其他字段信息;其他用户能查看客户的全部字段信息。 数据操作权限控制。比如银行ATM机器,不允许每天取款超过2万,单笔不超过5千;比如客户经理只能修改和删除自己开发的客户资料,不能修改其他客户经理开发的客户资料。 界面显示要素控制。比如显示自己开发的客户列表后面显示“修改”和“删除”按钮,否则不予显示。比如总公司用户登录,机构下拉框显示所有组织机构;分公司用户登录显示本分公司及下属营业部机构;营业部用户登录显示该营业部机构。

权限管理分类

 综合来说,可以把权限需求分类两大类:

功能级权限; 细粒度权限,又被称为数据级权限,内容级权限。这些权限根据登录用户、操作数据、当前环境等条件进行不同权限授权。可以分为: 查询权限;返回用户具有权限查询的数据。数据行控制,数据列控制,都属于查询权限。部分界面显示要素控制,属于查询权限。比如下拉框显示组织机构,可以先返回用户具有权限的机构,然后填写下拉框内容。 决策权限;返回用户是否具有某权限,如果不具备该权限,并告知拒绝理由。数据操作权限控制,部分界面显示要素控制都属于决策权限。ATM先判断用户是否具有该取款额的权限,然后根据结果吐钱。界面先判断用户是否具有“修改”和“删除”该客户的权限,然后根据结果显示按钮或者不显示按钮。

如何在IT系统实现权限管理

功能级权限控制,采用目前的角色策略即可。如下图所示: 

(图1:角色授权策略)

 

数据级权限控制,大多系统采用硬编码模式实现,在程序里面做各种判断。如下图所示:

(图2:硬编码模式实现细粒度权限控制)

 

有些优秀企业做了杰出创造,使用配置模式,或者采用部分编程+部分配置模式实现。

有些优秀企业做了杰出创造,采用在二次开发平台上,进行相关配置,然后生成带有权限的代码,将这些代码随同应用一起发布。

 

目前业内有一个非常牛气的规范:OASIS组织制定的XACML(eXtensible Access Control Markup Language) 规范。该规范非常强大,同时也难懂,实施难度大。

Oracle Entitlement Server和IBM Tivoli Access Manager都是基于该规范开发的产品。

Metadmin Access Manager是基于策略模型开发的产品。

 

怎样改进创新

 待续......

相关资源:ralasafe 权限管理中间件
转载请注明原文地址: https://www.6miu.com/read-5015067.html

最新回复(0)