单点登录及权限管理原理

上传人:桔**** 文档编号:503943675 上传时间:2023-09-19 格式:DOCX 页数:13 大小:116.46KB
返回 下载 相关 举报
单点登录及权限管理原理_第1页
第1页 / 共13页
单点登录及权限管理原理_第2页
第2页 / 共13页
单点登录及权限管理原理_第3页
第3页 / 共13页
单点登录及权限管理原理_第4页
第4页 / 共13页
单点登录及权限管理原理_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《单点登录及权限管理原理》由会员分享,可在线阅读,更多相关《单点登录及权限管理原理(13页珍藏版)》请在金锄头文库上搜索。

1、文件编号单点登录及权限管理原理说明书作者:评审:批准:发布日期:当前版本:V1.1修订历史纪录*A -追加M -修改D -删除版本改版日期改版说明*作者评审批准目录修订历史纪录111项目背景31.2 项目范围定义31.3 客户目标32 词汇表33 单点登录简介331CAS简介33.2 单点登录原理43.3 关键字63.4 Spring Security 介绍83.5 Srping Security 原理83.6 Spring Security 标签库93.6.1 Authentication93.6.2 authorize103.6.3 acl/accesscontrollist.103.6.

2、4 为不同用户显示各自的登陆成功页面104 SPRING SECURITY 与 CAS 集成114.1.1 Spring Security 与 CAS 集成114.1.2 通过数据库管理权限和资源11任务概述1.1项目背景单点登录CAS及Spring Security管理权限原理及实现。1.2项目范围定义单点登录CAS及Spring Security管理权限原理1.3客户目标配置CAS服务端相关文件,部署CAS服务端,作为单点登录统一认证。2词汇表词汇释义TGC(ticket-granting cookie)受权的票据证明KDC( Key Distribution Center )密钥发放中心

3、Service ticket( ST)服务票据3单点登录简介3.1 CAS简介CAS是Yale (耶鲁)大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点 登录方法,CAS在2004年12月正式成为JA-SIG的一个项目。http:/www.jasig.org/casCAS具有以下特点:基于kerberos身份认证协议技术开源的企业级单点登录解决方案。CAS Server为需要独立部署的Web应用。CAS Client支持非常多的客户端(这里指单点登录系统中的各个Web应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。单点登

4、录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。 SSO的基本功能是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系 统。例如:A和B两个完全独立的系统分别有各自完全独立的用户管理,现在需要将这两个系统整合,不 管是A系统中的帐户,还是B系统中的帐户,都只需要登录一次,就可以访问A和B系统的 服务了。如果一个人同时具有A和B系统的帐户,当他以A系统的帐户登录后,访问B系统时,B系统 自动将它转换成本系统帐户再进行访问操作,反之亦然。A和B系统整合后,不再单独提供新用户注册功能。新用户注册统一到中央认证管理系统中, 新注册的用户可以

5、同时访问A和B系统,例如,sina和sohu等网站的通行证注册就是这么回 事。3.2单点登录原理cas 实现 single sign out 的原理,如图所示:JCASserverTGCbrows er Jrl:Qsessicnld applicationweb browserTGC图一applicationwebbrowser 亦after url callback p:irse1 ugoutquest p;ar;airiEt er ;and get session Id then invalid session.图二第一张图演示了单点登陆的工作原理。第二张图演示了单点登出的工作原理。从第一

6、张图中,当一个web浏览器登录到应用服务器时,应用服务器(application)会检测用 户的session,如果没有session,则应用服务器会把url跳转到CAS server上,要求用户 登录,用户登录成功后,CAS server会记请求的application的url和该用户的sessionld(在 应用服务器跳转url时,通过参数传给CAS server)。此时在CAS服务器会种下TGC Cookie 值到webbrowser.拥有该TGC Cookie的webbrowser可以无需登录进入所有建立sso服务的应 用服务器application。在第二张图中,当一个web浏览器要

7、求登退应用服务器,应用服务器(application)会把url 跳转到CAS server上的/cas/logout url资源上,CAS server接受请求后,会检测用户的TCG Cookie,把对应的session清除,同时会找到所 有通过该TGC sso登录的应用服务器URL提交请求,所有的回调请求中,包含一个参数 logoutRequest, logoutRequest 包含:NamelD, SessionIndex,所有收到请求的应用服务器 application会解析这个参数,取得sessionId,根据这个Id取得session后,把session 删除。这样就实现单点登出的

8、功能。3.3关键字TGC( ticke t-gra nt ing cookie)受权的票据证明KDC( Key Dis tribu tion Cen ter ) 密钥发放中心Service ticket(ST)服务票据, 由 KDC 的 TGS 发放。任何一台 Workstation都需要拥有一张有效的Service Ticket才能访问域内部的应用(Applications)。如果能 正确接收Service Ticket,说明在CASClient-CASServer之间的信任关系已经被正确建立 起来,通常为一张数字加密的证书Ticket Gran ting tieck t(TGT)票据授权票

9、据,由KDC的AS发放。即获取这样一张票据后,以后申请各种其他服务票据(ST)便不必再向KDC提交身份认证信息(准确 术语是 Credentials)。authentication service (AS)认证用服务,索取Crendential,发放TGTticket-granting service (TGS)票据授权服务,索取 TGT,发放 ST CAS 单点服务器的认证过程,所有应用服务器收到应用请求后,检查ST和TGT,如果没有或不对, 转到CAS认证服务器登陆页面,通过安全认证后得到ST和TGT再重定向到相关应用服务 器,在会话生命周期之内如果再定向到别的应用,将出示ST和TGT进行

10、认证,注意,取 得TGT的过程是通过SSL安全协议的(换句话说就是如果不用ssl协议,每访问一个 应用服务,就得重新到认证服务中心认证一次)。白话描述:单点登陆,无非就是提供给用户一次登陆,多个系统共享用户信息的操作。这个是怎么操作的呢?有简单的方法,当用户访问其他系统的时候,写个URL带上用户 的ID和PASS提交到相应的系统就可以了。这也是一种方法。那CAS是怎么操作的呢?或则是KRB(Kerberos是一个加密认证协议,允许网络用户不使 用明文密码访问服务,一个普通的协议实现包括LOGIN服务存在伪造欺骗对KeyDistribution Center 的响应。怎么操作的呢?他并不是很复杂

11、,他先是建立一个专门认证用户的服务(SERVER)这个服务只做一件事, 负责验证用户的ID和PASS是否是正确,在正确的情况提供用户一个名为TGT的票据, 相当你要去游乐场玩,首先你要在门口检查你的身份(即CHECK你的ID和PASS),如 果你通过验证,游乐场的门卫(AS)即提供给你一张门卡(TGT)。这张卡片的用处就是告诉游乐场的各个场所,你是通过正门进来,而不是后门偷爬进来 的,并且也是获取进入场所一把钥匙。好的,现在你有张卡,但是这对你来不重要,因为你来游乐场不是为了拿这张卡的,好的, 我们向你的目的出发,恩,你来到一个摩天楼,你想进入玩玩,这时摩天轮的服务员 (client)拦下你,

12、向你要求摩天轮的(ST)票据,你说你只有一个门卡(TGT),好的, 那你只要把TGT放在一旁的票据授权机(TGS)上刷一下,票据授权机(TGS)就根据你现 在所在的摩天轮,给你一张摩天轮的票据(ST),你有摩天轮的票据,现在你可以畅通无 阻的进入摩天轮里游玩了。当然如果你玩完摩天轮后,想去游乐园的咖啡厅休息下,那你一样只要带着那张门卡 (TGT).到相应的咖啡厅的票据授权机(TGS)刷一下,得到咖啡厅的票据(ST)就可以进 入咖啡厅。当你离开游乐场后,想用这张TGT去刷打的回家的费用,呵呵,对不起,你的TGT已 经过期了,在你离开游乐场那刻开始,你的TGT就已经销毁了3.4 Spring Se

13、curity 介绍1、为基于J2EE企业应用提供了全面安全服务1, 将系统的安全逻辑从业务中分离出来2, 提供很多认证授权策略3, 基于URL的WEB资源访问控制4, 业务方法调用访问控制5, 领域对象访问控制 Access Control List (ACL)6, 单点登录(Central Authentication Service)缓存、信道安全(Channel Security)管 理等功能3.5 Srping Security 原理1)、安全包括认证授权两个主要操作。“认证”是为用户建立一个他所声明的主体。主体一般是指用户,设备或可以在你系统中执 行行动的其他系统。“授权”指的一个用

14、户能否在你的应用中执行某个操作。在到达授权判断之前,身份的主体 已经由身份验证过程建立了。用户认证过程:1. 你点击一个链接访问一个网页;2. 浏览器发送一个请求到服务器,服务器判断出你正在访问一个受保护的资源;3. 如果此时你并未通过身份认证,服务器发回一个响应提示你进行认证一一这个响应可能是 一个HTTP响应代码,抑或重定向到一个指定页面;4. 根据系统使用认证机制的不同,浏览器或者重定向到一个登录页面中,或者由浏览器通过 一些其它的方式获取你的身份信息(如通过BASIC认证对话框、一个Cookie);5. 浏览器再次将用户身份信息发送到服务器上(可能是一个用户登录表单的HTTP POST

15、信息、 也可能是包含认证信息的HTTP报文头);6. 服务器判断用户认证信息是否有效,如果无效,一般情况下,浏览器会要求你继续尝试, 这意味着返回第3步。如果有效,则到达下一步;7. 服务器重新响应第2步所提交的原始请求,并判断该请求所访问的程序资源是否在你的权 限范围内,如果你有权访问,请求将得到正确的执行并返回结果。否则,你将收到一个HTTP 403 错误,这意味着你被禁止访问。授权过程Spring Security称受保护的应用资源为“安全对象”这包括URL资源和业务类方法。spring AOP中有前置advice (处理、拦截器、通知)、后置advice、异常advice和环绕advice。Acegi使用环绕advice对安全对象进行保护。Acegi通AbstractSecuritylnterceptor为安 全对象访问提供一致的工作模型,它按照以下流程进行工作:1. 从SecurityContext中取出已经认证

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号