当前位置:文档之家› 角色的权限控制设计与实现

角色的权限控制设计与实现


字段名称
字段描述
主键
Task_ID
任务序号
PK
Task_Name
任务名称
SubFunctionNo 所属功能模块子类
FunctionNo
所属功能模块类
URL
页面 URL 地址
类型 Char Char Char Char char
长度 说明 2 30
100 255 255
3.2 任 务 分 派 功 能 实 现 如 下 图 1 显 示 了 在 ASP.NET 页 中 任 务 分 派 功 能 的 实 现 。通 过 对 各 任 务 功 能 的 选 择 进 行 分 派 任 务 。系 统 根 据 选择的结果转换成字符串存放于角色表的 Role_Task 字段中。
然而, 在 ASP.NET 中实现方案并不详尽, 而且不 能 满 足 对 不 同 的 用户分派不同的任务需求。
2.角色访问控制 传 统 的 访 问 控 制 方 法 DAC( Discretionary Access Control, 自 主 访 问 控 制 模 型 ) 、MAC( Mandatory Access Control, 强 制 访 问 控 制 模 型 ) 难 以 满 足 复 杂 的 企 业 环 境 需 求 。 因 此 , NIST ( National Institute of Standards and Technology, 美 国 国 家 标 准 化 和 技 术 委 员 会 ) 于 90 年 代
单独的资源使用 Windows ACL 来提 供 安 全 保 护 。 应 用 程 序 在 访 问资源之前模拟( impersonate) 调用者, 这样可以 使 操 作 系 统 执 行 标 准 的访问检查。所有对资源的访问都是使用原始调用者的安全上下文。 这种模拟方式在应用程序的中间层连接池不能被有效使用, 因而影响 了应用程序的可伸缩性。
3.3 页面动态调用的实现 每一个用户登录到系统后, 系统根据 用户的角色集查看所拥有的角色, 并根据相应角色的任务集进行对用 户的任务分配, 分配完任务后, 对相应的功能进行允许访问或禁止访 问 来 决 定 对 功 能 模 块 的 调 用 与 否 。如 果 是 允 许 调 用 则 用 户 可 以 访 问 此
3.1 数据库中表的设计 ( 1) 用户权限表( user_auth) :
表 1 用户权限表
字段名称
字段描述
主键
类型
长度
说明
User_ZGH 用户职工号
PK
Char

User_Name 用户名称
Char
20
Password
口令
Char
255
Status
用户状态
Char

Role_Code 用户角色代码
表 2 角色表
字段名称
字段描述
主键
类型
长度 说明
Role_Code
角色代码
PK
Char

Role_Name
角色名称
Char
30
Role_Task
角色分派任务
Char
100
Role_Discription
描述
Char
255
Remark
备注
char
255
( 3) 任务表( Task_Table) : 表 3 任务表
NET 平 台 上 没 有 完 整 的 基 于 角 色 的 访 问 控 制 机 制 , .NET 中 的 安 全 模 型 ( 代 码 访 问 安 全 性 : CAS) 只 是 实 现 到 角 色 层 次 , 没 有 细 化 到 任 务层次, ASP.NET 2.0 中的诸多安全机制 , 如 Membership、Web.Config 的安全配置, 都只能针对角色进行设置, 大家在利用这些安全机制, 往 往 需 要 在 程 序/代 码 硬 编 码 ( HardCode) 角 色 , 这 样 就 无 法 实 现 在 运 行 期自定义角色的功能。本文将首先介绍 ASP.NET 的基 本 情 况 和 基 于 角色和访问控制( Role Based Access Control, RBAC) 的 [1][2] 基 本 思 想 , 在 此基础上, 给出科研管理系统中实现用户权限控制的一种具体方法。
就基于角色访问控制而言, 访问决策是基于角色的, 个体用户是 某个组织的一部分。 用 户 具 有 指 派 的 角 色 ( 比 如 医 生 、护 士 、出 纳 、经 理) 。定义角色的过程应该基于对组织运转的彻底分析, 应该包括来自 一个组织中更广范围用户的输入。访问权按角色名分组, 资源的使用 受限于授权给假定关联角色的个体。例如, 在一个医院系统中, 医生角 色可能包括进行诊断、开据处方、指示实验室化验等; 而研究员的角色 则 被 限 制 在 收 集 用 于 研 究 的 匿 名 临 床 信 息 工 作 上 。控 制 访 问 角 色 的 运 用可能是一种开发和加强企业特殊安全策略, 进行安全管理过程流程 化的有效手段。
84
科技信息
○IT 技术论坛○
SCIENCE & TECHNOLOGY INFORMATION
2008 年 第 25 期
一个由 0 和 1 组成的类似二进制数的字符串。而任务表中的 Task_ID (任务序号)字段表示该任务在角色表的 Role_task (角色任务分派值)字 段中的位置, 如果该位置对应的数值是 0, 表示该角色无此权限, 如果 值为 1, 则表示该角色拥有此权限。
1.AS P .NET 技术 ASP.NET 是微软推出的用于建立动态的数据库驱动网站的技术, 是一个已编译的、基于.NET 的环境 [3], 为开发人员提供生成 企 业 级 WEB 应用程序所需的服务, 可以 和 任 何 与.NET 兼 容 的 语 言 创 建 应 用 程序, 生成更安全的、可伸 缩 的 和 稳 定 的 WEB 应 用 程 序 , ASP.NET 提 供 了 一 种 将 显 示 逻 辑 和 编 程 逻 辑 分 离 的 Web 应 用 程 序 设 计 技 术 , 可
初提出了基于角色的访问控制方法, 实现了用户与访问权限的逻辑分
离, 更符合企业的用户、组织、数据和应用特征。 角 色 访 问 控 制 ( Role- Based Access Control, RBAC) 引 入 了 角 色 的
概念,目的是为了隔离用户( 即动作主体) 与权限( 表示对资源的一个 操作) 。角色作为一个用户与权限的代理层, 解耦了权限和用户的关 系, 所有的授权应该给予角色而不是直接给用户或组。权限颗粒由操 作和资源组成, 表示对资源的一个操作。基于角色的访问控制方法 ( RBAC) 的显著的两大特征是: 1) 由于角色/权限之间的变化比角色/用 户关系之间的变化相对要慢得多, 减小了授权管理的复杂性, 降低管 理开销。2) 灵活地支持企业的安全策略, 并对企业的变化有很大的伸 缩性。
3.权限分配的设计与实现 权限控制的基本思想是: 根据角色访问控制( RBAC) 的基本原理, 给用户分配一个角色, 每个角色对应一些权限, 然 后 利 用 ASP.NET 中
的服务器端编程技术来判断该用户对应的角色及该角色所拥有的页 面访问权力, 然后根据这些权力动态调用相应 Web 页面。
下面以学校科研管理系统为例进行在 ASP.NET 中 基 于 角 色 的 用 户权限分配的设计与实现。
在 ASP.NET 中提供了成员资格、角色管理授权等功能。通过成员 资格提供了通用的用 户 管 理 功 能 , 诸 如 注 册 、登 录 、找 回 密 码 等 , 加 上 与之配套的可视化控件, 我们“几乎”不用在编写额外的代码就可以工 作。但注册和登录控件有缺乏验证码, 缺乏安全性。ASP.NET 2.0 的角 色管 理 授 权 , 由 RoleManagerModule、Roles、RoleProvider、RolePrincipa 共 同 组 成 。 系 统 会 自 动 载 入 RoleManagerModule 这 个 HttpModule, Roles 为用户提供角色相关的操作方法, 而 RoleProvider 提 供 程 序 的emark
备注
char
255
在 用 户 权 限 表 的 Role_Code 字 段 用 于 记 录 对 该 用 户 所 分 配 的 角 色集, 一个用户有可能身兼多个角色。
( 2) 角色表( Role_Table) : 角色表中 Role_Task 字段用于记录该角色所拥有的任务集。它是
以将编程逻辑进行编译, 提供了强类型、性能优化和早期绑定。 ASP.NET 应用程序有两种基本的权限策略: 基于角色的授权和基
于资源的授权。 对操作的访问通过调用者的角色成员关系, 提供安全保护。角色
可 以 将 应 用 程 序 的 用 户 群 划 分 为 具 有 相 同 安 全 权 限 的 用 户 组 。用 户 被 映射到角色, 而且如果某个用户被授权执行所请求的操作, 则应用程 序可以用固定的标识来访问资源。这些标识被各自的资源管理器( 如 数据库和文件系统) 所信任。
科技信息
○IT 技术论坛○
SCIENCE & TECHNOLOGY INFORMATION
2008 年 第 25 期
在 ASP.NET 中基于角色的权限控制设计与实现
昝风彪 ( 青海民族学院计算机科学与技术系 青海 西宁 810007)
【摘 要】ASP.NET 虽然提供基于角色的授权和基于资源的授权两种权限策略, 但不能满足对不同的用户分派不同的任务需求。基于角色 的访问控制实现了用户与访问权限的逻辑分离, 更符合企业的用户、组织、数据和应用特征。在 ASP.NET 中运用基于角色的访问控制使应用程 序在用户管理方面具有更好的灵活性和安全性, 实现多粒度控制。
【关键词】APS.NET ; 角色; 权限; 访问控制 Design and Implementation of Role- Based Pr ivilege Contr ols in ASP.NET ZAN Feng- biao
相关主题