`
rainwindboy
  • 浏览: 56290 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

【积累】一个基于yelu大学CSA认证服务的SSO例子(服务器为tomcat)

阅读更多
此文参考了网上文章,并对其中做了补充。
    参考原文地址一:http://blogger.org.cn/dispbbs.asp?BoardID=41&id=26447&replyID=19949&star=1&skin=0
    参考原文地址二:http://www.diybl.com/course/3_program/java/javashl/2008414/110181.html

    Yale CAS (Central Authentication Service,中央认证服务)是耶鲁大学的一个开源项目。它为耶鲁大学的网络应用提供了一种标准的用户认证服务,从而实现了SSO的功能。
    Yale CAS被设计成为一个独立的网络应用程序,它使用JavaS ervlet技术实现,可以作为用户身份认证模块加入到网络应用中。

    2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:

    开源的企业级单点登录解决方案。 
    CAS Server 为需要独立部署的 Web 应用。 
    CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
    CAS 原理和协议

    从结构上看,CAS 包含两个部分: CAS Server 和 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 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证,之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server 进行身份合适,以确保 Service Ticket 的合法性。

    在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保,ST 和 TGC 的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证的过程对于用户是透明的。

    另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS 官方网站上的相关文档。
    下面就来说说该如何配置我们的第一个CAS服务器
     首先需要到官网上下载CAS Server 和 Client,地址分别为:

    http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.zip

    http://www.ja-sig.org/downloads/cas-clients/cas-client-java-2.1.1.zip

   1、打开tomcat中的SSL协议
    修改Tomcat配置文件server.xml,去掉对于SSL的注释,即开放8443端口,注意这里需要在connector字段中加入keystorePass="password"参数,password即为上面几步中涉及到的密码,代码如下:
   

1    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
2    <!-- -->
3    <Connector port="8443" maxHttpHeaderSize="8192"
4               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
5               enableLookups="false" disableUploadTimeout="true"
6               acceptCount="100" scheme="https" secure="true"
7               clientAuth="false" sslProtocol="TLS" keystorePass="changeit" />
    2、生成安全证书
    如果你的JDK环境是自动安装的话,你需要在系统中加入JAVA_HOME这个环境变量
    然后在DOS环境下(开始-》运行-》cmd-》回车后出现DOS窗口)一次敲入如下的命令
    %java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
    PS:敲入这个命令后,会提示你输入密码,初始的默认密码为changeit。在证书生成的时候,需要你回答一些问题,其它的你可以随便写,但是姓名这个问题必须填入localhost。
    %java_home%\bin\keytool -export -alias tomcat -file server.crt
    %java_home%\bin\keytool -import -file server.crt -keystore %java_home%/jre/lib/security/cacerts
   

    3、将CAS server3.0.2中target目录中的CAS.war复制到%tomcat_home%\webapps目录下.
    4、将cas-client-java-2.1.1\dist\casclient.jar文件复制到%tomcat_home%\common\lib中
    5、修改tomcat自带的servlet-examples的web.xml, 加入cas的过滤器:

 1<filter> 
 2    <filter-name>CASFilter</filter-name>
 3    <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
 4    <init-param>
 5        <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
 6        <param-value>https://localhost:8443/cas/login</param-value>
 7    </init-param>
 8    <init-param>
 9        <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
10        <param-value>https://localhost:8443/cas/proxyValidate</param-value>
11    </init-param>
12    <init-param>
13        <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
14        <param-value>localhost:8080</param-value>
15    </init-param>
16</filter>
17
18<filter-mapping>
19    <filter-name>CASFilter</filter-name>
20    <url-pattern>/servlet/*</url-pattern>
21</filter-mapping>
22<filter-mapping>
23<filter-name>CASFilter</filter-name>
24<url-pattern>/*</url-pattern>
25</filter-mapping>
26

    6、启动tomcat !,CAS.war文件被自动在webapps下释放出CAS目录

    最后,如果配置成功,进入https://localhost:8443/servlets-examples, 被自动转发到CAS的登陆页面,在这个页面上随便填入相同的用户名和密码,进入到了被转发的页面。

    PS:证书的删除命令如下

    %java_home%\bin\keytool -delete -alias tomcat -keyalg RSA

    %java_home%\bin\keytool -delete -keystore %java_home%/jre/lib/security/cacerts










分享到:
评论

相关推荐

    Yelu 大学 cas 单点登录实例

    【Yelu大学CAS单点登录实例详解】 ...总之,Yelu大学的CAS单点登录实例展示了如何利用Java Web技术构建一个安全、便捷的身份验证平台。理解并掌握这些知识对于提升Web应用的安全性和用户体验具有重要意义。

    Yelu 大学 cas 单点登录

    Yelu大学的CAS单点登录系统是一个基于Java Web的实现,它提供了统一的用户认证入口,简化了用户的登录体验。`cas-server-2.0.12`文件包含了实现这一功能所需的全部组件,包括服务器核心、配置文件和Web应用。通过...

    CAS单点登录(SSO)完整教程

    CAS(Central Authentication Service),即中央认证服务,是由Yelu大学研发并开源的一种用于实现单点登录(SSO)的服务框架。SSO是一种让用户只需一次登录就能访问多个应用系统的认证机制,极大提升了用户体验,...

    CAS配置[收集].pdf

    CAS(Central Authentication Service)是Yelu大学研发的一个开源的SSO服务器,广泛用于实现跨域、跨平台的身份验证。本教程详细介绍了如何配置CAS服务器和客户端应用,以实现单点登录功能。 首先,教程涵盖了创建...

    cas-server-webapp-3.5.3.war

    Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    CAS代理服务

    1. **CAS工作原理**:CAS通过一种基于票证(Ticket)的身份验证机制,用户首次登录CAS服务器后,会获取一个服务票证(Service Ticket),然后这个票证可以被用于访问其他受CAS保护的应用,无需再次验证身份。...

    cas-server-webapp-6.1.x.war

    cas-server-webapp-6.1.x.war Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    CAS服务端3.4.8安装手册

    CAS是一个开源项目,用于实现跨域用户认证。本文档特别关注于如何根据具体需求定制CAS,以满足项目要求。 - **目标读者**: 具有一定Java开发经验的人士,熟悉Spring MVC框架、Maven工具以及MyEclipse的使用方法。...

    cas-server-webapp-4.1.3.war

    Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    cas-server-webapp-4.2.0-RC1.war

    Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    cas-server-webapp-3.4.12.1.war

    Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    cas-server-webapp-3.2.2-RC1.war

    Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    cas-server-webapp-3.6.0.war

    Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    cas-server-webapp-4.0.7.war

    Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    cas-server-webapp-3.3.5.war

    Yelu大学研发的CAS(Central Authentication Server) , 单点登录服务器 , 将war包放置到tomcat/webapp中即可运行

    人脸资源库

    人脸资源库是一个重要的数据集,通常用于人脸识别技术的研究与开发。这个压缩包包含了ORL、MIT和YELU三种著名的人脸数据库,这些都是在计算机视觉领域广泛应用的标准数据集。 首先,我们来详细了解一下这三个人脸...

Global site tag (gtag.js) - Google Analytics