对于网站来说,我们有的页面可以直接访问,有的需要登录后才可以访问,但会有一种情况,就是一旦我们在任何一个需要登录才可以访问的页面登录了,在登录成功后,其他需要登录才可以访问的页面会自动登录成功,通俗来说,就是我们在任意一点登录后,可以访问其他所有需要登录的网站。这里就涉及到CAS单点登录技术
单点登录(Single Sign On ,简称SSO)
- 首先,单点登录是一种思想,是指:在多个应用系统中,用户只需登录一次,就可以访问所有相互信任的应用系统。
什么是CAS?
- 介绍:
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。
CAS是开源的企业级单点登录解决方案,用来实现SSO的。
- 组成部分:
名称 | 作用 |
---|---|
CAS Server | 是一个需要独立部署的 Web 应用(war包),负责统一的登录认证工作。 |
CAS Client | 负责处理客户的访问请求,需要登录时,重定向到 CAS Server。 |
- CAS的大致流程图:
部署CAS服务
- 下载CAS资源包
- 将以下目录:\cas\source\cas-server-4.0.0-release\cas-server-4.0.0\modules\cas-server-webapp-4.0.0.war 的war包复制到一个tomcat的webapp目录下,并且改名为cas.war,这样方便些。
- 启动tomcat,解压war包
- 浏览器中输入http://localhost:8080/cas/login即可访问。
- cas提供的内置账户和密码:用户名casuser ,密码 Mellon
CAS部署的几点注意:
修改端口号:如果不想使用8080端口,可以进行修改。
- 打开tomcat 目录 conf\server.xml 找到下面的配置,将8080修改为自己想要的
- 修改cas的WEB-INF/cas.properties 在文件的末尾添加如下的配置:
去除https认证:https是http的安全版。CAS默认使用的是HTTPS协议,如果使用HTTPS协议需要SSL安全证书(需向特定的机构申请和购买)。如果对安全要求不高或是在开发测试阶段,可使用HTTP协议。
- 修改cas的WEB-INF/deployerConfigContext.xml,大约92行这样,增加参数p:requireSecure=“false”
- 修改cas的/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml将cookieSecure改为false , cookieMaxAge 改为3600
- 修改cas的WEB-INF/spring-configuration/warnCookieGenerator.xml将cookieSecure改为false , cookieMaxAge 改为3600
- 修改了配置文件后,重新启动tomcat