前言
此系列文章均以我的环境及具体工作需求为例,真实环境,确保配置可用的前提下才发布的
因我主要以实战作为讲解,所以如果您对CAS的理论知识还不够清楚,尤其是CAS的运行流程及各协议的介绍,那么俺请您去官网了解一下,不用太深入了解,够用就行。
并且!文章写的可能不那么细,希望您别斤斤计较。
废话少说
搭建CAS环境十分简单,无非配置SSL
CAS需要SSL的支持,当然也可以不支持,比较有源码嘛。
CAS服务端是JAVA开发的,关于运行JAVA的环境就不用多说了,无非三大项:JDK、TOMCAT、IE
我所使用的JDK为1.6,TOMCAT为6.0
搭建CAS分为以下几个步骤:
1:下载CAS服务端及客户端(客户端因需求原因,基本上没用到)
2:配置TOMCAT的SSL
3:发布CAS服务端
4:配置CAS客户端
5:测试
下面将按照步骤一步步进行
一:下载CAS服务端及客户端
CAS的官网地址:http://www.jasig.org/cas
CAS服务端目前的最新版本是3.4.2,我也是使用的这个版本,首页就有下载提示
下载之后的文件全称是:cas-server-3.4.2-release.zip
CAS客户端我使用的是JAVA版的,目前最新版本是3.1.10,
下载地址:http://www.ja-sig.org/downloads/cas-clients/
二:配置TOMCAT的SSL
这个SSL说复杂也挺复杂,说容易也不难,就看您想配个什么样的SSL了
我配的是超简单的那种SSL,就是单向的,只有服务器验证的,使用JDK自带的keytool工具生成的证书。
1:创建keyPair
keytool -genkey -alias cas -keyalg RSA -keystore cas-store.keystore -validity 365
证书的CN值应该是CAS服务端所在机器的域名,当然机器名也可,或者干脆使用localhost,这将直接影响到CAS客户端是否能请求到CAS服务端,我的环境是局域网,所以直接使用机器名就行“JcBay-PC”
2:导出公钥并导入到信任证书库
这一步如果不搞的话,那么客户端在请求CAS服务端时将抛错提示说什么找不到证书请求路径之类的信息
keytool -export -trustcacerts -alias cas -file cas-key.cer -keystore cas-store.keystore
keytool -import -trustcacerts -alias cas-server -file cas-key.cer -keystore %JAVA_HOME%/jre/lib/security/cacerts -storpass changeit
3:配置Tomcat的server.xml
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/cas-store.keystore"
keystorePass="111111"
/>
这样,Tomcat的SSL配置就结束了,需要提醒各位的是,不同版本的Tomcat所配置SSL的方法都不同,所以请根据自己所用的版本使用正确的配置方法
https://localhost:8443 测试是否可以看到小猫
三:发布CAS服务端
将下载的cas-server-3.4.2-release.zip解压缩,在modules目录中拷贝cas-server-webapp-3.4.2.war到Tomcat目录下的webapps中改名为“cas”。在modules目录中还有一些JAR包,这些JAR包都是对各种认证方式的支持包,比如JDBC、LDAP、RADIUS、X509等等,更重要的是有源码,可以哪里不爽改哪里!
启动Tomcat,
四:配置CAS客户端
在我的测试例子中,采用的是JAVA版的客户端,并只是简单测试了SSO和跨域登录,均实用ST完成,并未使用代理票据
CAS的客户端源码我简单的看了看,其实主要也就是干两件事,一是请求CAS服务端并获得ST(or PT),而是验证ST并获得账号,当然,其它比如根据Filter的参数设置,也会干些其它的事。
按照官网的介绍,配置CAS客户端有很多种方法,当然咱选最简单的那种(web.xml)配置
实现客户端的Filter即可,根据官网的介绍,我也是能简单就简单,所以参数除了必选之外,都保持默认值
将下载的CAS客户端解压缩,将module目录中的所有JAR包复杂到业务系统的lib目录下,然后编辑业务系统的web.xml文件,加下以下配置
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://JcBay-PC:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>JcBay-PC:8080</param-value>
</init-param>
<init-param>
<param-name>gateway</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://JcBay-PC:8443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>JcBay-PC:8080</param-value>
</init-param>
<init-param>
<param-name>acceptAnyProxy</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
<filter>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
别忘了配置mapping标签,我都采用的/*作用域
五:测试
我的测试环境是,服务端和客户端均在同一台机器上,所以,我直接输入URL:http://localhost:8080/BusTest
BusTest为业务系统名,这时会跳转到CAS登录界面,输入账号口令(均一致),确定后跳转到BusTest业务系统,表示成功。
假如说您的客户端和CAS服务端不在同一台机器,那么您的客户端就需要将服务端的公钥导入到您本地的信任库中,并且请确保服务端的域名与之前创建KEYPAIR时所填的域相同
据官网介绍说,因为CAS使用的COOKIE为服务端有效,所以没有域的概念,不论你的客户端运行在何处,只要是使用的同一个CAS服务端,那么都能实现SSO功能。
结束
分享到:
相关推荐
2. **安装 CAS**:将解压后的 cas-server-3.4.2.1 目录放置到服务器的适当位置。 3. **配置 CAS**:修改 `cas.properties` 文件以设置服务器地址、数据库连接等参数。 4. **注册服务**:在 `servicesRegistry.config...
CAS服务器是一个Web应用,通常部署在Servlet容器如Tomcat上。为了实现与Access数据库的连接,我们需要在CAS服务器的配置中添加相关的数据库驱动和连接参数。 1. **安装Tomcat**:确保你已经下载并安装了Tomcat...
1. **安装和配置CAS服务器**: 部署`cas-server-webapp`到应用服务器,配置CAS服务器以适应您的环境,如数据库连接、认证源等。 2. **配置Liferay**: 在Liferay中配置CAS客户端插件,设置SSO属性,确保与CAS服务器...
在“cas-3.4.1_单点登录_CAS_”这个项目中,你将获得一个完整的CAS服务器源码和相关的测试用例,这对于理解和部署CAS系统是非常有价值的。 单点登录是一种身份验证机制,它允许用户在一个应用系统中登录后,无需...
1. **Web项目结构**:包含了Web应用的必要目录结构,如WEB-INF、src、lib等,其中src存放Java源代码,WEB-INF下有web.xml配置文件,定义了CAS服务器的部署描述。 2. **CAS服务器的核心组件**:包括了...
cas-server-webapp-3.3.3.war改名为cas.war部署到web服务器,作为单点登录的服务器。
总的来说,CAS 3.4.5提供了SSO解决方案的关键组件,源码和WAR包的组合为开发者提供了灵活性,既可以直接部署运行,也可以进行深度定制。如果你需要实现单点登录功能,这个资源将是一个有价值的起点。
**CAS服务器版本**:教程中使用了两个版本的CAS Server——`cas-server-3.4.3.1`和`cas-server-3.4.10`,以及对应的客户端版本`cas-client-3.1.12`和`cas-client-3.2.1`,这展示了不同版本之间的兼容性和升级路径。...
ACS5.2(Access Control Server 5.2)是一个网络设备访问控制解决方案,提供了比传统AAA(认证、授权、审计)...这样的部署经验文档不仅为系统管理员提供了配置的步骤,也体现了ACS5.2在企业网络中的实际应用价值。
- 通常情况下VSR安装在VMware平台上不支持云点部署。 #### 九、零存储的优势 **9.1 架构特性** - 采用scale-out架构,易于水平扩展。 - 存储计算一体化,便于统一管理。 **9.2 成本效益** - 使用X86服务器作为...
- **安装与配置:**提供了安装Visual Studio 2010的步骤以及如何配置开发环境以适应不同项目需求。 **1.2 对象与Visual Basic** - **对象概念:**详细讲解了面向对象编程的基本原理,包括类、对象、继承、封装等...
- CAS (`spring-security-cas.jar`):提供对 CAS 协议的支持。 - OpenID (`spring-security-openid.jar`):提供 OpenID 认证支持。 - Test (`spring-security-test.jar`):提供测试工具类。 #### 二、Spring ...
CAS 可以由应用程序的管理员或者部署者进行配置,也可以通过代码动态调整。这样可以灵活地根据实际需求来定制安全策略。 #### 8. 中间语言 (IL) ##### 8.1 什么是中间语言? 中间语言 (Intermediate Language, IL...
为了确保Direct Push功能正常运作,首先需要确保Exchange Server 2003已安装最新的服务包(Service Pack 2 或更高版本)。以下步骤概述了如何配置服务器: **步骤1:启用Exchange ActiveSync服务** - 登录到运行...
- **3.4. CAS例子** 集成了CAS(Central Authentication Service),实现单点登录。 - **3.5. Pre-Authentication例子** 展示了预认证机制的使用方法。 ##### 4. Spring Security社区 - **4.1. 任务跟踪** ...
1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................