统一权限管理平台-清华大学
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下级管理角色 下级管理角色 普通角色
下级管理角色
普通角色
普通角色
管理端--公共角色映射
教师
公共角色概念
– 普通公共角色 如:教师 – 职务公共角色
应 用 1 登录 教师 应 用 2 登录 教师
公共角色映射
– 维护公共角色和 本地角色的对应 关系
本地角色 教师A
本地角色 教师B
公共角色优点
模块1 模块2 模块3 模块1 模块2 模块3
管理端--分级授权实现
分级授权含义 实现
– 每一个登录用户(管理员)都至少有一个管理 角色与之对应 – 管理角色的属性及范围
• 属性: • 范围:用户,角色,权限
分级授权的典型角色层次结构
管理角色创建管 理角色
– 子管理角色范围 在父管理角色范 围内
root
下级管理角色
管理角色创建普 通角色
– 子管理角色创建 的普通角色的权 限是父管理角色 创建普通角色权 限的子集
//得到登录用户的id。 String userId =tinfo.getUsername(); …… ……
常见问题
如何让权限系统对某些资源url不起作用 (权限系统起作用是通过过滤器的) 如何让已经登录的用户都能访问某些资源 (利用已登录角色)
权限平台展望
目前不足 展望
– 针对动态资源 – 角色代理
数据权限、字段权限
CS控制端
打开窗口时控制 查询接口
公共角色
服务平台
公共角色与用户
用 户
BS控制端 BS控制端 CS控制端
管理端 CS应用系统
BS应用系统1
BS应用系统2
权限数据库
服务平台
权限公共数据
整 合 权 限 的 应 用 系 统 权 平限 台服 务
用户角色授权
角色权限分配
数 据 结 构 核 心
权限标签
<li class="defau"> 成绩管理 <ul> <perm:permCheck url="/railway.tangExam.do?m=addTangExam"> <li class="secmenu"> 成绩录入 </li> </perm:permCheck>
<perm:permCheck url="/railway.tangExam.do?m=queryTangExam"> <li class="secmenu"> 成绩查询 </li> </perm:permCheck> </ul> </li>
认证
– 基于过滤器 – 过程
过滤器 本地数据库认证 统一身份认证 漫游认证
认证结果?
认证管理器
授权
– 基于过滤器 – 基于AOP拦截器 – 过程
用户具有的角色 投票器 访问目标url需要 的角色 AOP
投票结果?
认 证 过 程
打包用 户信息
统一身份认证 漫游认证 本地数据库认证
统一身份认证
认证管理器
– 授权分散 – 授权管理复杂 – 重复建设
建立统一权限平台必要性
– 短期效果 – 长远规划
基础设施整合
整体目标及实现方案
建立全局统一的权限管理模型
–提供统一权限验证与访问控制服务 –提供统一的授权管理服务 –提供统一的权限审计服务 –用户权限变动调整方便
整体目标细化
管理CS和BS权限
统一授权管理服务
RBAC
用户
角色
权限
审计
资源的包装--模块
模块表
模块seq 51934 模块类型seq 模块编号 2 010010 模块名称 第二学位管理 模块前缀值 综合教务 模块取值…...
– CS: w_xj_zxxx_dexw – BS: /login.do
模块树
– 资源分层分类管理
模块包含
– BS中方便权限分配
统一权限平台介绍
报告主要内容
统一权限平台整体
– 目标 – 架构 – 数据结构
整体抽象
平台具体组成部分
– 管理端 – 控制端
实施
– 整合部署说明
部分具体
需 求
现状
– 权限管理普遍存在每个应用中 – 每个应用权限管理存在较大差异
流程整合 应用整合 数 据 整 合 权 限 整 合 用 户 整 合
导致问题
取用户信息
Authentication auth =SecurityContextHolder.getContext().getAuthentic ation(); if(auth==null) {//无信息 } else{ User tinfo=(User)auth.getPrincipal();
管理端--其他
快捷方便授权
– 复制用户角色 – 复制角色权限
举例演示
管理端总结
管理端作用及功能
– 统一对BS和CS应用进行授权
• 用户角色 • 角色权限
– 采用管理角色支持分级授权 – 公共角色映射
BS统一权限控制端
控制端作用 基于Acegi的权限控制
– 认证 – 授权
基于Acegi的控制端
控制端总结
控制端--通过过滤器起作用
– 认证 – 授权
各种接口 权限标签
整合实施说明
管理端
– 与业务应用独立部属 • 独立入口登录 • 漫游登录 – 参数Iframe=true
控制端整合说明
支持GBP/Байду номын сангаасGBP系统
– 整合方式基本相同 – 修改的配置文件名略有不同
支持常用web框架
– Spring – Struts
过 滤 器
认证成功
载入用户基 本信息 根据用户类别载 入公共角色信息
载入本地角色信 息
认证成功后 页面
URL
是否认证过? 过 滤 器
认证流程
得到用户具有的 角色
用户授权流程
得到访问当前 URL需要的角色
角色比较
URL
控制端主要接口功能
获取某个用户具有的所有角色 获得能访问某个URL的所有角色 判断当前用户能否访问某个链接 获取某用户在某个URL对应的功能模块中 所具有的数据权限
纯JSP系统
控制端整合说明
确保权限数据库已经建立 增加控制端的jar包 增加控制端配置文件
– web.xml 中
• 过滤器
– 其他配置文件
整合后配置修改
文件uniperm-end.xml中app_ID的设置 统一身份认证服务器的相应参数设置 用户类型与公共角色的映射关系
常见问题
修改数据库模块表数据,并且分配权限, 但应用仍然无权限 (缓存问题) 采用权限系统后,用户信息从什么地方获 取(Acegi认证对象)
谢谢大家
报告主要内容
统一权限平台整体
– 目标 – 构架 – 数据结构
整体抽象
平台具体组成部分
– 管理端 – 控制端
实施
– 整合部署说明
部分具体
统一权限管理端
主要功能
– 用户分配角色 – 角色分配角色 – 模块管理 – 分级授权管理 – 公共角色映射 – 授权数据excel导入导出 – 权限审计用户角色报表,角色权限报表等
支持分级授权
统一访问控制服务
功能权限(窗口/url)
数据权限、字段权限
权限变动调整方便
基于角色的权限管理(RBAC) 公共角色
统一权限审计服务
整体目标细化
用户角色分配
管理CS和BS权限 支持分级授权 功能权限(窗口/url) BS控制端 Acegi Request属性 管理端 角色权限分配 管理角色维护
下级管理角色
普通角色
普通角色
管理端--公共角色映射
教师
公共角色概念
– 普通公共角色 如:教师 – 职务公共角色
应 用 1 登录 教师 应 用 2 登录 教师
公共角色映射
– 维护公共角色和 本地角色的对应 关系
本地角色 教师A
本地角色 教师B
公共角色优点
模块1 模块2 模块3 模块1 模块2 模块3
管理端--分级授权实现
分级授权含义 实现
– 每一个登录用户(管理员)都至少有一个管理 角色与之对应 – 管理角色的属性及范围
• 属性: • 范围:用户,角色,权限
分级授权的典型角色层次结构
管理角色创建管 理角色
– 子管理角色范围 在父管理角色范 围内
root
下级管理角色
管理角色创建普 通角色
– 子管理角色创建 的普通角色的权 限是父管理角色 创建普通角色权 限的子集
//得到登录用户的id。 String userId =tinfo.getUsername(); …… ……
常见问题
如何让权限系统对某些资源url不起作用 (权限系统起作用是通过过滤器的) 如何让已经登录的用户都能访问某些资源 (利用已登录角色)
权限平台展望
目前不足 展望
– 针对动态资源 – 角色代理
数据权限、字段权限
CS控制端
打开窗口时控制 查询接口
公共角色
服务平台
公共角色与用户
用 户
BS控制端 BS控制端 CS控制端
管理端 CS应用系统
BS应用系统1
BS应用系统2
权限数据库
服务平台
权限公共数据
整 合 权 限 的 应 用 系 统 权 平限 台服 务
用户角色授权
角色权限分配
数 据 结 构 核 心
权限标签
<li class="defau"> 成绩管理 <ul> <perm:permCheck url="/railway.tangExam.do?m=addTangExam"> <li class="secmenu"> 成绩录入 </li> </perm:permCheck>
<perm:permCheck url="/railway.tangExam.do?m=queryTangExam"> <li class="secmenu"> 成绩查询 </li> </perm:permCheck> </ul> </li>
认证
– 基于过滤器 – 过程
过滤器 本地数据库认证 统一身份认证 漫游认证
认证结果?
认证管理器
授权
– 基于过滤器 – 基于AOP拦截器 – 过程
用户具有的角色 投票器 访问目标url需要 的角色 AOP
投票结果?
认 证 过 程
打包用 户信息
统一身份认证 漫游认证 本地数据库认证
统一身份认证
认证管理器
– 授权分散 – 授权管理复杂 – 重复建设
建立统一权限平台必要性
– 短期效果 – 长远规划
基础设施整合
整体目标及实现方案
建立全局统一的权限管理模型
–提供统一权限验证与访问控制服务 –提供统一的授权管理服务 –提供统一的权限审计服务 –用户权限变动调整方便
整体目标细化
管理CS和BS权限
统一授权管理服务
RBAC
用户
角色
权限
审计
资源的包装--模块
模块表
模块seq 51934 模块类型seq 模块编号 2 010010 模块名称 第二学位管理 模块前缀值 综合教务 模块取值…...
– CS: w_xj_zxxx_dexw – BS: /login.do
模块树
– 资源分层分类管理
模块包含
– BS中方便权限分配
统一权限平台介绍
报告主要内容
统一权限平台整体
– 目标 – 架构 – 数据结构
整体抽象
平台具体组成部分
– 管理端 – 控制端
实施
– 整合部署说明
部分具体
需 求
现状
– 权限管理普遍存在每个应用中 – 每个应用权限管理存在较大差异
流程整合 应用整合 数 据 整 合 权 限 整 合 用 户 整 合
导致问题
取用户信息
Authentication auth =SecurityContextHolder.getContext().getAuthentic ation(); if(auth==null) {//无信息 } else{ User tinfo=(User)auth.getPrincipal();
管理端--其他
快捷方便授权
– 复制用户角色 – 复制角色权限
举例演示
管理端总结
管理端作用及功能
– 统一对BS和CS应用进行授权
• 用户角色 • 角色权限
– 采用管理角色支持分级授权 – 公共角色映射
BS统一权限控制端
控制端作用 基于Acegi的权限控制
– 认证 – 授权
基于Acegi的控制端
控制端总结
控制端--通过过滤器起作用
– 认证 – 授权
各种接口 权限标签
整合实施说明
管理端
– 与业务应用独立部属 • 独立入口登录 • 漫游登录 – 参数Iframe=true
控制端整合说明
支持GBP/Байду номын сангаасGBP系统
– 整合方式基本相同 – 修改的配置文件名略有不同
支持常用web框架
– Spring – Struts
过 滤 器
认证成功
载入用户基 本信息 根据用户类别载 入公共角色信息
载入本地角色信 息
认证成功后 页面
URL
是否认证过? 过 滤 器
认证流程
得到用户具有的 角色
用户授权流程
得到访问当前 URL需要的角色
角色比较
URL
控制端主要接口功能
获取某个用户具有的所有角色 获得能访问某个URL的所有角色 判断当前用户能否访问某个链接 获取某用户在某个URL对应的功能模块中 所具有的数据权限
纯JSP系统
控制端整合说明
确保权限数据库已经建立 增加控制端的jar包 增加控制端配置文件
– web.xml 中
• 过滤器
– 其他配置文件
整合后配置修改
文件uniperm-end.xml中app_ID的设置 统一身份认证服务器的相应参数设置 用户类型与公共角色的映射关系
常见问题
修改数据库模块表数据,并且分配权限, 但应用仍然无权限 (缓存问题) 采用权限系统后,用户信息从什么地方获 取(Acegi认证对象)
谢谢大家
报告主要内容
统一权限平台整体
– 目标 – 构架 – 数据结构
整体抽象
平台具体组成部分
– 管理端 – 控制端
实施
– 整合部署说明
部分具体
统一权限管理端
主要功能
– 用户分配角色 – 角色分配角色 – 模块管理 – 分级授权管理 – 公共角色映射 – 授权数据excel导入导出 – 权限审计用户角色报表,角色权限报表等
支持分级授权
统一访问控制服务
功能权限(窗口/url)
数据权限、字段权限
权限变动调整方便
基于角色的权限管理(RBAC) 公共角色
统一权限审计服务
整体目标细化
用户角色分配
管理CS和BS权限 支持分级授权 功能权限(窗口/url) BS控制端 Acegi Request属性 管理端 角色权限分配 管理角色维护