耶鲁CAS Single Sign On--星月夜
来源:百度文库 编辑:神马文学网 时间:2024/04/29 05:32:45
耶鲁CAS Single Sign On- -
耶鲁大学开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Service),是一个独立于平台的,易于理解的开源软件,支持代理功能。Spring Framework的Acegi安全系统支持CAS,并提供了易于使用的方案。
CAS的设计目标
l、为多个Web应用提供单点登录基础设施,同时可以为非Web应用但拥有Web前端的功能服务提供单点登录的功能;
2、简化应用认证用户身份的流程;
3、将用户身份认证集中于单一的Web应用,让用户简化他们的密码管理,从而提高安全性;而且,当应用需要修改身份验证的业务逻辑时,不需要到处修改代码;
CAS的设计和实现
CAS(Central Authentication Server)被设计成一个独立的Web应用。它目前的实现是运行在HTTPS服务器上的几个Java Servlet。通过三个URL来访问:Login URL,Validation URL和可选的Logout URL。下图是CAS的单点登录流程示意图:
为了使用CAS,Web应用重定向它的用户(或简单地创建一个超链接)到Login URL,例如https://secure.its.yale.edu/cas/servlet/login。用户也可以手工访问这个URL,如果希望预先验证会话。
Login URL处理初步的认证工作,它提示用户输入NetID和密码,并用Kerberos服务器校验它们是否匹配。为了接下来能自动重新验证用户身份,CAS也会试图给浏览器回送Cookie(浏览器关闭后会自动过期)。这个Cookie用于识别已经成功登录的用户身份。
使用这个可选的Cookie,CAS可以为用户实现对于多个Web应用单点登录的效果。这就是说,用户只需输入一次他的NetID和密码,即可访问任何使用CAS的资源服务。没有这个Cookie,当Web应用重定向用户到CAS时,用户每次都要输入NetID和密码。(用户也可以通过访问Logout URL,如https://secure.its.yale.edu/cas/servlet/logout,来要求CAS删除这个Cookie。)
为了处理初步的身份认证,CAS也记录了用户被重定向时访问的service。可以这样做是因为CAS要求重定向或链接用户到Login URL的Web应用提供一个service的标志符(在上图中记为serviceID)。如果验证成功,CAS创建一个位数很长的随机数(我们称之为ticket)。CAS把这个ticket和成功登录的用户以及用户要访问的service联系起来。例如,如果用户peon重定向自service S,CAS创建ticket T,这个ticket T允许peon访问service S。这个ticket是个一次性的凭证;它仅仅用于peon,仅仅用于service S,并且只能使用一次,使用之后马上会过期。
一旦完成了初步的身份验证,CAS重定向用户浏览器回到原来的Web应用URL。CAS之所以能记得原来的URL,是因为上面讨论的service ID作为一个"callback URL"。CAS重定向用户的浏览器回到原来的URL,并加上上面讨论的ticket作为请求参数。
为了让讨论更加清楚,考虑下面的例子。假设用户在访问http://www.yale.edu/tp之前需要验证身份,我们把用户从http://www.yale.edu/tp重定向到下面的Login URL:
https://secure.its.yale.edu/cas/servlet/login?service=http://www.yale.edu/tp/authenticate.jsp
JSP页面authenticate.jsp是网站资源的一部分。一旦完成了上面描述的初步身份验证,CAS用下面的URL重定向用户浏览器到这个JSP页面:
http://www.yale.edu/tp/authenticate.jsp?ticket=opaque-ticket-string
一旦收到请求,authenticate.jsp页面需要校验这个收到的ticket,它把tickect传送Validation URL(如http://secure.its.yale.edu/cas/servlet/validate)。authenticate.jsp页面需要使用JSSE向Validation URL发送请求并读取数据。当生成这个请求时,authenticate.jsp页面还需要把先前的service ID用service的参数名传送给Validation URL,例子如下:
http://secure.its.yale.edu/cas/servlet/validate?ticket=T&service=S
当CAS从Validation URL收到这个ticket,它检查自己内部数据库,看看是否保存过这个ticket。如果数据库有这个ticket,则进一步检查数据库中和ticket关联的service是否和刚收到的service相匹配。如果匹配,则向请求验证身份的应用URL返回NetID;否则拒绝验证这个请求。
Validation URL向请求身份验证的应用URL返回数据的方式很简单。CAS用text/plain的应答方式返回两行数据;第一行是yes或no,取决于ticket验证是否通过。如果ticket通过验证,第二行则是成功通过身份验证的用户的NetID。如果ticket没有通过验证,第二行为空。例子如下:
yes
peon
如果ticket通过验证,CAS立即删除该ticket,使它以后不能再使用。
当完成了身份验证的循环流程,Web应用无需知道用户的密码即可校验用户身份。此外,如果用户浏览器接受Cookie,它将保留一个可用于多次向CAS验证用户身份的Cookie,让用户以后不用再输入NetID和密码。(目前,这个用于身份验证的Cookie保留8个小时。)
耶鲁大学开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Service),是一个独立于平台的,易于理解的开源软件,支持代理功能。Spring Framework的Acegi安全系统支持CAS,并提供了易于使用的方案。
CAS的设计目标
l、为多个Web应用提供单点登录基础设施,同时可以为非Web应用但拥有Web前端的功能服务提供单点登录的功能;
2、简化应用认证用户身份的流程;
3、将用户身份认证集中于单一的Web应用,让用户简化他们的密码管理,从而提高安全性;而且,当应用需要修改身份验证的业务逻辑时,不需要到处修改代码;
CAS的设计和实现
CAS(Central Authentication Server)被设计成一个独立的Web应用。它目前的实现是运行在HTTPS服务器上的几个Java Servlet。通过三个URL来访问:Login URL,Validation URL和可选的Logout URL。下图是CAS的单点登录流程示意图:
为了使用CAS,Web应用重定向它的用户(或简单地创建一个超链接)到Login URL,例如https://secure.its.yale.edu/cas/servlet/login。用户也可以手工访问这个URL,如果希望预先验证会话。
Login URL处理初步的认证工作,它提示用户输入NetID和密码,并用Kerberos服务器校验它们是否匹配。为了接下来能自动重新验证用户身份,CAS也会试图给浏览器回送Cookie(浏览器关闭后会自动过期)。这个Cookie用于识别已经成功登录的用户身份。
使用这个可选的Cookie,CAS可以为用户实现对于多个Web应用单点登录的效果。这就是说,用户只需输入一次他的NetID和密码,即可访问任何使用CAS的资源服务。没有这个Cookie,当Web应用重定向用户到CAS时,用户每次都要输入NetID和密码。(用户也可以通过访问Logout URL,如https://secure.its.yale.edu/cas/servlet/logout,来要求CAS删除这个Cookie。)
为了处理初步的身份认证,CAS也记录了用户被重定向时访问的service。可以这样做是因为CAS要求重定向或链接用户到Login URL的Web应用提供一个service的标志符(在上图中记为serviceID)。如果验证成功,CAS创建一个位数很长的随机数(我们称之为ticket)。CAS把这个ticket和成功登录的用户以及用户要访问的service联系起来。例如,如果用户peon重定向自service S,CAS创建ticket T,这个ticket T允许peon访问service S。这个ticket是个一次性的凭证;它仅仅用于peon,仅仅用于service S,并且只能使用一次,使用之后马上会过期。
一旦完成了初步的身份验证,CAS重定向用户浏览器回到原来的Web应用URL。CAS之所以能记得原来的URL,是因为上面讨论的service ID作为一个"callback URL"。CAS重定向用户的浏览器回到原来的URL,并加上上面讨论的ticket作为请求参数。
为了让讨论更加清楚,考虑下面的例子。假设用户在访问http://www.yale.edu/tp之前需要验证身份,我们把用户从http://www.yale.edu/tp重定向到下面的Login URL:
https://secure.its.yale.edu/cas/servlet/login?service=http://www.yale.edu/tp/authenticate.jsp
JSP页面authenticate.jsp是网站资源的一部分。一旦完成了上面描述的初步身份验证,CAS用下面的URL重定向用户浏览器到这个JSP页面:
http://www.yale.edu/tp/authenticate.jsp?ticket=opaque-ticket-string
一旦收到请求,authenticate.jsp页面需要校验这个收到的ticket,它把tickect传送Validation URL(如http://secure.its.yale.edu/cas/servlet/validate)。authenticate.jsp页面需要使用JSSE向Validation URL发送请求并读取数据。当生成这个请求时,authenticate.jsp页面还需要把先前的service ID用service的参数名传送给Validation URL,例子如下:
http://secure.its.yale.edu/cas/servlet/validate?ticket=T&service=S
当CAS从Validation URL收到这个ticket,它检查自己内部数据库,看看是否保存过这个ticket。如果数据库有这个ticket,则进一步检查数据库中和ticket关联的service是否和刚收到的service相匹配。如果匹配,则向请求验证身份的应用URL返回NetID;否则拒绝验证这个请求。
Validation URL向请求身份验证的应用URL返回数据的方式很简单。CAS用text/plain的应答方式返回两行数据;第一行是yes或no,取决于ticket验证是否通过。如果ticket通过验证,第二行则是成功通过身份验证的用户的NetID。如果ticket没有通过验证,第二行为空。例子如下:
yes
peon
如果ticket通过验证,CAS立即删除该ticket,使它以后不能再使用。
当完成了身份验证的循环流程,Web应用无需知道用户的密码即可校验用户身份。此外,如果用户浏览器接受Cookie,它将保留一个可用于多次向CAS验证用户身份的Cookie,让用户以后不用再输入NetID和密码。(目前,这个用于身份验证的Cookie保留8个小时。)
耶鲁CAS Single Sign On--星月夜
单一登陆(Single Sign-on)问题
[原创] SSO(Single Sign-on) in Action(上篇)-David....
[原创] SSO(Single Sign-on) in Action(上篇)-David....
[原创] SSO(Single Sign-on) in Action(上篇)1
源代码解读Cas实现单点登出(single sign out)功能实现原理
[原创] SSO(Single Sign-on) in Action(上篇) - Java Security In Action - BlogJava
WebSphere环境下的SSO(Single sign-on:单点登录、全网漫游)实现之...
翻译:Single Sign-On for Everyone - Anders Liu的.NET空间 - 博客园
ASP.NET 2.0 Membership以及Single Sign On的几个资源 - Anders Liu的.NET空间 - 博客园
Nicaragua, Russia sign MOU on natural disaste...
Nicaragua, Russia sign agt on coop against natural calamities
CAS查询
星月神话
星月神话
星月泪痕
星月神话
星月无缘
浅淡星月
浅淡星月
星月传说
星月神话
Single Tones and Herbs
Single transferable vote