CAS单点登陆配置手册.doc
《CAS单点登陆配置手册.doc》由会员分享,可在线阅读,更多相关《CAS单点登陆配置手册.doc(22页珍藏版)》请在三一办公上搜索。
1、CAS单点登陆配置手册1、Yale CAS简介CAS 是 Yale (耶鲁)大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:开源的企业级单点登录解决方案。 CAS Server 为需要独立部署的 Web 应用。 CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。2、CAS 原理和协议从结构上看,CAS 包含两个部分: CAS Server 和
2、 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。图1 是 CAS 最基本的协议过程:图 1. CAS 基础协议CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (
3、也就是要访问的目的资源地址),以便登录成功过后转回该地址。用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server 进行身份合适,以确保 Service Ticket 的合法性。在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST 和
4、TGC 的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。3、CAS服务端配置1准备环境JDK1.6apache-tomcat-6.0.14cas-server-3.4.22配置server将cas-server war文件复制到webapps下,启动tomcat,以相同用户名或密登录成功。3配置数据库访问方式复制modules下面所有jar文件到cas-server的Web-inf/lib下,并复制class12.jar(oracle数据库驱动)。修改配置数据源,在deployerCon
5、figContext.xml中添加数据源。 oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:localhost:1521:orcl aip aip 修改登录验证方法,在deployerConfigContext.xml中注释原验证方式,改为数据库验证。重新启动,通过数据库验证用户成功.三种验证方法:相同用户名或密码用select语句验证指定表或字段 MD5加密配置,在deployerConfigContext.xml中添加加密算法 在用户验证中加入4设置cas登录成功进入页面修改webappscasWEB-INFviewjspdefaultui
6、casGenericSuccess.jsp页面,重定向到Aip系统protal页面.5CAS 服务端超时配置修改cas server下WEB-INFsping-configurationapplicationContext.xml,6CAS取消HTTPS验证配置6.1 修改cas server下WEB-INFdeployerConfigContext.xml文件增加参数p:requireSecure=false,是否需要安全验证,即HTTPS,false为不采用。6.2修改cas server下WEB-INFspring-configurationticketGrantingTicketCoo
7、kieGenerator.xml文件Defines the cookie that stores the TicketGrantingTicket. You most likely should never modify these (especially the secure property).You can change the name if you want to make it harder for people to guess.参数p:cookieSecure=true,TRUE为采用HTTPS验证,与deployerConfigContext.xml的参数保持一致。参数p:c
8、ookieMaxAge=-1,简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。6.3修改cas server下WEB-INFspring-configurationwarnCookieGenerator.xml文件两个参数与上面同理。7CAS安全性设置TGC存活周期设置修改WEB-INFspring-configurationticketExpirationPolicies.xml文件,通过TimeoutExpira
9、tionPolicy来设置CAS TGC存活周期参数,参数默认是120分钟,在合适的范围内设置最小值,太短,会影响SSO体验,太长,会增加安全性风险。Service Ticket有效设置通过在 web.xml 中设置下面的参数,能让 Service Ticket 在多少秒内失效。 edu.yale.its.tp.cas.serviceTimeout 300 该参数在业务应用的条件范围内,越小越安全。 4、CAS服务端扩展1扩展认证接口CAS Server 负责完成对用户的认证工作,它会处理登录时的用户凭证 (Credentials) 信息,用户名/密码对是最常见的凭证信息。CAS Server
10、 可能需要到数据库检索一条用户帐号信息,也可能在 XML 文件中检索用户名/密码,还可能通过 LDAP Server 获取等,在这种情况下,CAS 提供了一种灵活但统一的接口和实现分离的方式,实际使用中 CAS 采用哪种方式认证是与 CAS 的基本协议分离开的,用户可以根据认证的接口去定制和扩展。扩展 AuthenticationHandler CAS 提供扩展认证的核心是 AuthenticationHandler 接口,该接口定义如清单 1 下:清单 1. AuthenticationHandler定义 public interface AuthenticationHandler /* *
11、 Method to determine if the credentials supplied are valid. * param credentials The credentials to validate. * return true if valid, return false otherwise. * throws AuthenticationException An AuthenticationException can contain * details about why a particular authentication request failed. */ bool
12、ean authenticate(Credentials credentials) throws AuthenticationException; /* * Method to check if the handler knows how to handle the credentials * provided. It may be a simple check of the Credentials class or something * more complicated such as scanning the information contained in the * Credenti
13、als object. * param credentials The credentials to check. * return true if the handler supports the Credentials, false othewrise. */ boolean supports(Credentials credentials); 该接口定义了 2 个需要实现的方法,supports ()方法用于检查所给的包含认证信息的Credentials 是否受当前 AuthenticationHandler 支持;而 authenticate() 方法则担当验证认证信息的任务,这也是需
14、要扩展的主要方法,根据情况与存储合法认证信息的介质进行交互,返回 boolean 类型的值,true 表示验证通过,false 表示验证失败。CAS3中还提供了对AuthenticationHandler 接口的一些抽象实现,比如,可能需要在执行authenticate() 方法前后执行某些其他操作,那么可以让自己的认证类扩展自清单 2 中的抽象类:清单 2. AbstractPreAndPostProcessingAuthenticationHandler定义 public abstract class AbstractPreAndPostProcessingAuthenticationHa
15、ndler implements AuthenticateHandler protected Log log = LogFactory.getLog(this.getClass(); protected boolean preAuthenticate(final Credentials credentials) return true; protected boolean postAuthenticate(final Credentials credentials, final boolean authenticated) return authenticated; public final
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAS 单点 登陆 配置 手册
链接地址:https://www.31ppt.com/p-2396987.html