`
javasogo
  • 浏览: 1834855 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

在Tomcat中使用Yale CAS实现单点登陆(SSO)

阅读更多
<!--[if !supportEmptyParas]--><!--[endif]-->
耶鲁大学开发的单点登录系统称为CAS(Central Authentication Server)被设计成一个独立的Web应用程序(cas.war)。它目前用几个Java Servlet作为实现并且通过一个Https服务器来运行。要使用单点登陆功能的Web应用作为CAS的一个客户端来运行。
由于CAS使用Https协议,所以首先要知道如何在容器中配置SSL。Tomcat的SSL配置相对其它的容器较为简单,SSL配置完成后CAS服务器一般都能正常运行了。
CAS的客户端以一个Web应用的Filter运行。当Web应用的某个功能被请求时,Filter就会拦截应用的URL,从而迫使用户到CAS服务器进行登陆。在所有不同的Web应用中,使用同一个CAS服务器进行登陆,即可达到单点登陆之目的。
本文使用同一个Tomcat(版本Tomcat5.0.30)配置CAS服务器及客户端,分别在8443端口及8080端口。下面是在Tomcat中使用Yale CAS实现单点登陆的详细步骤:
<!--[if !supportLists]-->1.<!--[endif]-->安装CAS服务器
<!--[if !supportLists]-->1.1.<!--[endif]-->下载CAS发行包,下载地址:
<!--[if !supportLists]-->1.2. <!--[endif]-->将cas-server-2.0.12.zip解压,并将lib/cas.war拷贝到Tomcat的webapps下,测试CAS服务器是否发布正常,可以访问http://localhost:8080/cas/login 出现登陆窗口。输入用户名密码(用户名=密码),出现登陆成功页面说明发布正常。
<!--[if !supportLists]-->2. <!--[endif]-->配置Tomcat使用https协议
<!--[if !supportLists]-->2.1. <!--[endif]-->使用Java自带的keytool命令,产生SERVER的证书
D:\> keytool -genkey -alias my-alias-name -keyalg RSA -keystore keystore-file
其中my-alias-name为别名,这行命令的作用是产生一个新的公共/私有钥匙对。keystore-file为存储钥匙和证书的文件。
命令运行后,根据提示回答。注意在开始问“你的名字”或“DName”的时候,必须填写你服务器所在域名(在局域网中测试时,使用主机名或hosts文件中注册的域名,本机可以使用localhost)。
<!--[if !supportLists]-->2.2. <!--[endif]-->在Tomcat的8443端口配置SSL
在Tomcat_Path\conf\server.xml文件中配置SSL的地方,增加如下配置:
<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https"
secure="true">
<Factory className="org.apache.coyote.tomcat5.CoyoteServerSocketFactory"
keystoreFile="D:/keystore-file"
keystorePass="password" clientAuth="false" protocol="TLS" />
</Connector>
其中,keystoreFile使用绝对路径,keystorePass为第3点输入的keystore密码。配置完成后,启动Tomcat,访问https://localhost:8443 ,访问成功说明SSL配置成功。也可以访问https://localhost:8443/cas/login
<!--[if !supportLists]-->3. <!--[endif]-->配置 CAS客户端
Tomcat中自带的Servlet examples应用为例,在Web应用中使用配置CAS客户端。
<!--[if !supportLists]-->3.1. <!--[endif]-->在Servlet examples应用里配置CAS客户端,需修改servlets-examples/WEB-INF/web.xml,在web.xml文件中,加入如下Filter配置:
<filter>
<filter-name>CASFilter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://localhost:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas/proxyValidate</param-value>
</init-param>
<init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>localhost:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
其中,第一,二个localhost都改成CAS服务器域名或主机名,第三个改成你servelt example应用域名或主机名,由于本文中CAS服务器与客户端在同一主机同一Tomcat上,所以都为localhost。若不在同一主机,则分别使用两主机的域名或主机名。
<!--[if !supportLists]-->3.2. <!--[endif]-->将cas-client-2.0.11.zip解压,把java/lib/casclient.jar拷贝到Tomcat的
webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
<!--[if !supportLists]-->3.3. <!--[endif]-->导出SERVER的证书,用来给所有需要用到的客户端导入
D:\> keytool -export -file myserver.cert -alias my-alias-name -keystore keystore-file
<!--[if !supportLists]-->3.4. <!--[endif]-->在客户端的JVM里导入信任的SERVER的证书,输入keystore密码时,注意现在的keystore为cacerts,而cacerts的初密码为changeit,而不是前面keystore-file的密码,所以要是没有改过cacerts密码应该输入changeit.
D:\> keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert -alias my-alias-name
其中,$JAVA_HOME改成JDK的绝对路径。
<!--[if !supportLists]-->4. <!--[endif]-->测试SSO
启动Tomcat,访问http://localhost:8080/servlets-examples/ ,随便执行一个servlet,系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,认证通过之后,就会访问到你点击的servlet了。
<!--[if !supportEmptyParas]--><!--[endif]-->
分享到:
评论

相关推荐

    Weblogic使用YALE(耶鲁)CAS实现SSO单点登录 的方法.doc

    Weblogic 使用 YALE CAS 实现 SSO 单点登录的方法 一、Yale CAS 简介 Yale CAS 是耶鲁大学开发的一种开源的单点登录(SSO)解决方案,提供了一个通用的身份验证框架,允许用户使用单个身份验证来访问多个应用程序。...

    Yale CAS 3.3实现SSO详细教程。

    Yale CAS(Central Authentication Service)是一种广泛使用的开源单点登录(Single Sign-On,简称SSO)系统,它允许用户通过一个认证界面访问多个应用系统,而无需为每个系统单独登录。本教程将详细介绍如何在Yale ...

    使用CAS在Tomcat中实现单点登录

    单点登录(SSO)是现代企业环境中一种高效的身份验证机制,它允许用户在一个系统中登录后,无需再次输入凭证即可访问多个相互信任的应用系统。CAS(Central Authentication Service)是SSO的一种实现,由Yale大学...

    使用 CAS 在 Tomcat6 中实现单点登录

    总结来说,实现使用CAS在Tomcat6中进行单点登录,需要理解SSO的基本概念,熟悉CAS的工作原理和协议流程,掌握CAS Server的部署和配置,以及CAS Client在Tomcat中的集成。通过这些步骤,可以构建一个安全且方便的单点...

    CAS单点登录 for Tomcat

    《Tomcat中使用Yale+CAS实现单点登陆(SSO).doc》可能会讲解如何结合Yale大学提供的CAS实现SSO。《修改CAS客户端.pdf》可能是关于如何自定义和扩展CAS客户端的指导。最后,《构造CAS客户端的登录Servlet.pdf》则可能...

    tomcat cas 单点登陆

    其中一个关键的需求是实现单点登录(SSO, Single Sign-On)功能,即用户只需要在一个系统中登录一次,即可在所有相关联的系统中自动完成身份验证。这种机制不仅提升了用户体验,还大大增强了系统的安全性。 CAS...

    CAS框架SSO的实现.rar

    使用CAS框架实现SSO单点登录,其中包含: 1、CAS服务器端安装包 2、客户端源码包和所需的所有jar包 ...6、Tomcat中使用Yale+CAS实现单点登陆(SSO).doc 7、以及本人的搭建过程中所遇到得问题和解决方法

    Yale CAS Server的部署及cas-java-client 3.2的应用

    这篇文章将详细介绍如何部署Yale CAS Server以及如何在Java应用中使用cas-java-client 3.2进行集成。 首先,我们需要了解Yale CAS Server的部署过程。这通常包括以下几个步骤: 1. **环境准备**:确保你有一个适合...

    耶鲁CasServer单点登录教程

    Yale Central Authentication Service (CAS) 是一个开源的身份验证框架,由耶鲁大学开发,主要用于实现单点登录(Single Sign-On, SSO)。SSO允许用户在一个系统上登录后,无需再次认证即可访问其他多个相互信任的...

    集成框架中使用CAS实现单点登录技术方案.pdf

    根据提供的文件信息,我们可以分析出以下知识点: ### 单点登录(SSO)技术 单点登录是指用户仅需要一次身份验证,就可以访问多...这些内容为集成框架中使用CAS实现单点登录技术方案提供了全面的技术支持和实施指导。

    java-cas单点登录服务端

    CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,研究如何采用 CAS 实现轻量级单点登录解决方案。 CAS 是 Yale 大学发起的...

    sso单点登录入门

    #### 三、SSO方案示例:Tomcat中使用Yale CAS实现SSO 在实际部署中,将Yale CAS集成到Tomcat服务器是一个常见的SSO实现方案。以下是一个简化的步骤概述: 1. **安装与配置CAS服务器**:首先需要在独立的服务器上...

    CAS实现单点登录.pdf

    单点登录(Single Sign On,简称SSO)是一种在多应用系统环境中,用户只需要登录一次即可访问所有相互信任的应用系统的技术。它简化了用户登录流程,提高了用户体验,并且强化了安全性,因为用户只需要记住一个凭证...

    cas单点登录原理以及例子的搭建和实现

    在Web-SSO中,所有应用通过Web协议如HTTPS进行通信,且用户只需一次登录即可访问所有应用。 在SSO的体系中,有三个关键角色:用户、Web应用和SSO认证中心。所有用户的登录操作都在SSO认证中心进行,认证中心通过...

    CAS单点登陆配置手册

    CAS (Central Authentication Service) 是由美国耶鲁大学发起的一项开源项目,它致力于为Web应用系统提供可靠且安全的单点登录(Single Sign-On, SSO)解决方案。自2004年12月正式成为JA-SIG(Joint Architecture ...

    Yale CAS最佳实践.rar

    **Yale CAS(Central Authentication Service)是耶鲁大学开发的一款基于Web的身份验证系统,它允许用户通过单一登录(Single Sign-On, SSO)访问多个应用系统。本篇将详细探讨Yale CAS的最佳实践,包括环境准备、...

    cas3.5.2单点登录文档详细配置

    在Web SSO中,用户只需要通过一个中央认证服务(如CAS)进行身份验证,之后便可以在所有已信任的应用之间无缝切换。SSO的核心角色包括User、Web应用和SSO认证中心。所有登录操作均在SSO认证中心进行,中心通过某种...

    实现SSO的CAS开源框架介绍

    CAS(Central Authentication Service),即中央认证服务,是由耶鲁大学的信息技术服务中心(ITS)开发的一套用于实现单点登录(Single Sign-On, SSO)功能的开源框架。CAS通过为用户提供一个集中的身份验证机制来...

Global site tag (gtag.js) - Google Analytics