单点登录_尚学堂CAS讲义

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.SSO (Single Sign-on)原理

SSO 分为Web-SSO和桌面SSO。桌面SSO 体现在操作系统级别上。Web-SSO体现在客户端,主要特点是:SSO 应用之间使用Web 协议( 如HTTPS) ,并且只有一个登录入口。我们所讲的SSO,指Web SSO 。

SSO 的体系中,有下面三种角色:

✧User(多个)

✧Web应用(多个)

✧SSO认证中心(一个)

SSO 实现模式千奇百怪,但万变不离其宗,包含以下三个原则:

●所有的登录都在 SSO 认证中心进行。

●SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的

用户。

●SSO 认证中心和所有的 Web 应用建立一种信任关系。

二.CAS 的基本原理

CAS(Central Authentication Service) 是Yale 大学发起的构建Web SSO 的Java开源项目。

1.CAS 的结构体系

◆CAS Server

CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名/ 密码等凭证(Credentials) 。

◆CAS Client

CAS Client部署在客户端,当有对本地Web 应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到CAS Server 进行认证。

2.CAS 协议

基础协议

上图是一个基础的CAS 协议,CAS Client 以过滤器的方式保护Web 应用的受保护资源,过滤从客户端过来的每一个Web 请求,同时,CAS Client 会分析HTTP 请求中是否包请求Service Ticket( 上图中的Ticket) ,如果没有,则说明该用户是没有经过认证的,CAS Client 会重定向用户请求到CAS Server (Step 2 )。Step 3 是用户认证过程,如果用户提供了正确的认证信息,CAS Server 会产生一个随机的Service Ticket ,会向User 发送一个Ticket granting cookie (TGC) 给User 的浏览器,并且重定向用户到CAS Client (附带刚才产生的Service Ticket),Step 5 和Step6 是CAS Client 和CAS Server 之间完成了一个对用户的身份核实,用Ticket 查到Username ,认证通过。

3.CAS 如何实现SSO

当用户访问Helloservice2再次被重定向到CAS Server 的时候,CAS Server 会主动获到这个TGC cookie ,然后做下面的事情:

1)如果User 的持有TGC 且其还没失效,那么就走基础协议图的Step4 ,达到了

SSO 的效果。

2)如果TGC 失效,那么用户还是要重新认证( 走基础协议图的Step3) 。

三.实践配置

下面我们以tomcat 5.5 为例进行说明(这里,我将Server和Client同时放在了同一个Tomcat服务器下)。

软件环境:tomcat 5.5 ant-1.6.5, jdk1.5.0_06

下载cas-server-3.0.4.zip和cas-client和cas-server-jdbc-3.0.5-rc2.jar和mysql 5.0.16和tomcat 5.5.15

/downloads/cas/cas-server-3.0.4.zip

/tp/cas/cas-client-2.0.11.zip

/maven/cas/jars/cas-server-jdbc-3.0.5-rc2.jar

/

(一) 将一个或者一些页面进行支持HTTPS传输协议(意义:对某些页面进行了安全传输)

(重点掌握)

1. 产生SERVER的证书库文件

keytool -genkey -alias tomcat -keyalg RSA [-keystore keystore-file]

并将证书文件放在web容器的目录下。

2.(在server端)配置tomcat使用HTTPS

$CATALINA_HOME/conf/server.xml里

keystorePass="changeit" keystoreFile="\conf\.keystore"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" disableUploadTimeout="true"

acceptCount="100" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS" />

注意:keystorePass="changeit"(这个问证书库文件的密码,也就是上面配置产生的一个密码)keystoreFile="/.keystore"(这是证书库文件的存放路径,其中根目录“/”

为tomcat的安装路径)

3. 在WEB-INF\web.xml文件中增加

SSL

/jsp2/el/*

CONFIDENTIAL

解释:transport-guarantee元素指定了客户端和服务端的通信关系,有NONE,INTEGRAL,CONFIDENTIAL。NONE表示着应用不需要任何传输保障。INTEGRAL表示着在数据在客户端到服务端的过程中不能有任何改变。CONFIDENTIAL表示在传输过程中防止其他传输内容的干扰。在使用SSl时常用的就INTEGRAL或CONFIDENTIL。

4. 进行访问测试

(二) 实现CAS系统

1. 产生SERVER的证书库文件

keytool -genkey -alias tomcat -keyalg RSA [-keystore keystore-file]

相关文档
最新文档