统一身份认证(CAS)简单说明与优秀设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
统一身份认证()简单说明与设计方案(转)
1. 单点登录概述
所谓单点登录(),只当企业用户同时访问多个不同(类型的)应用时,他们只需要提供自身的用户凭证信息(比如用户名/密码)一次,仅仅一次。解决方案(比如,)负责统一认证用户,如果需要,也可以完成用户的授权处理。可以看出,当企业用户在不同的应用间切换时,他们不用再重复地输入自身的用户凭证了。在实施后,所用的认证操作都将交给认证中心。现有的解决方案非常多,比如微软的便是典型的解决方案,各容器都提供了自身的专有能力。
2. 的总体架构
1. 简介
(中央认证服务)是建立在非常开放的协议之上的企业级解决方案。诞生于2001年,在2002年发布了2.0协议,这一新的协议提供了(代理)能力,此时的2.0支持多层能力。到2005年,成为了旗下的重要子项目。由于2.0版本的可扩展能力不是非常完美,而且他的架构设计也不是很卓越,为了使得能够适用于更多场合,打算开发出同时遵循1.0和2.0协议的3版本。
现在的3全面拥抱技术,比如容器和技术、、、等。
通常,3由两部分内容构成:3服务器和客户端。由于2.0协议借助于数据结构与客户进行交互,因此开发者可以使用各种语言编写的3客户与服务器进行通信。3服务器采用纯开发而成,它要求目标运行环境实现了2.4+规范、提供 1.4+支持。如果宿主3服务器的目标容器仅仅实现了2.3-规范,则在对3服务器进行少量的改造后,3也能运行其中。
运行时,3服务器仅仅是一个简单的应用,使用者只需要将直接丢到目标容器后,即完成了3的部署。
2. 词汇概念
( ) 受权的票据证明
( ) 密钥发放中心
() 服务票据,由的发放。任何一台都需要拥有一张有效的才能访问域内部的应用() 。如果能正确接收,说明在之间的信任关系已经被正确建立起来,通常为一张数字加密的证书
() 票据授权票据,由的发放。即获取这样一张票据后,以后申请各种其他服务票据() 便不必再向提交身份认证信息( 准确术语是) 。
() 认证用服务,索取,发放
() 票据授权服务,索取,发放
3. 工作原理
的单点登录的认证过程,所用应用服务器受到应用请求后,检查和,如果没有或不对,转到认证服务器登录页面,通过安全认证后得到和,再重新定向到相关应用服务器,在回话生命周期之内如果再定向到别的应用,将出示和进行认证,注意,取得的过程是通过安全协议的。
如果通俗形象地说就是:相当于用户要去游乐场,首先要在门口检查用户的身份( 即用户的和), 如果用户通过验证,游乐场的门卫() 即提供给用户一张门卡()。
这张卡片的用处就是告诉游乐场的各个场所,用户是通过正门进来,而不是后门偷爬进来的,并且也是获取进入场所一把钥匙。
现在用户有张卡,但是这对用户来不重要,因为用户来游乐场不是为了拿这张卡的而是为了游览游乐项目,这时用户摩天楼,并想游玩。
这时摩天轮的服务员() 拦下用户,向用户要求摩天轮的() 票据,用户说用户只有一个门卡(), 那用户只要把放在一旁的票据授权机() 上刷一下。
票据授权机() 就根据用户现在所在的摩天轮,给用户一张摩天轮的票据(), 这样用户有了摩天轮的票据,现在用户可以畅通无阻的进入摩天轮里游玩了。
当然如果用户玩完摩天轮后,想去游乐园的咖啡厅休息下,那用户一样只要带着那张门卡(). 到相应的咖啡厅的票据授权机() 刷一下,得到咖啡厅的票据() 就可以进入咖啡厅
当用户离开游乐场后,想用这张去刷打的回家的费用,对不起,用户的已经过期了,在用户离开游乐场那刻开始,用户的就已经销毁了。
3. 的实现原理
由于是基于的服务,所以它使用了来生成相应,下面的代码段摘自与服务器的中的配置文件。
< ""
"">
< "" "" />
< "" "-1" />
< "" "" />
< "" "" />
<>
一旦用户登录到服务器后,可以借助于为的地址退出,并且这种结果将导致浏览器中已存储的被销毁掉,即销毁与当前用户间已建立的信任关系(会话)。
1. 认证处理器
浏览项目的,可以发现如下内容:
<>
<><>
<>
,
<>
<>
<>
<>
<>
<>
实现了,它借助于装载容器。这样做的原因是因为在通过启动时可能出现异常,造成整个不能正常启动,经过,则在异常发生时,服务器也可以启动。
在中,可以看到只定义了一个:
<>
< ""
"">
< "">
<>
< "" />
< "" />
<>
<>
< "">
<>
< "" />
< "" />
<>
<>
<>
<>
的作用是如果用户名与密码输入一样,则通过系统认证。这个是开发过程中常用的一个,但是在开发完毕后应该除去。
负责认证用户,比如一个用户是否合法就是它来验证的。对象会借助于他引用的和集合完成用户的认证工作。负责完成用户认证,而负责构建认证结果。其中,并不是的全部集合都参与到用户认证中,一旦某个成功完成用户的认证,则认证进程就到此为止,进而转到来构建认证结果。的过程也类似于此。
2. 的时序图
来自: