1 CAS Server部署
1.1 CAS默认应用搭建
从CAS官方网站下载CAS-Server应用。本人下载的是3.3版本。解压后,在里面的modules目录里可以找到一个WAR包,这个就是CAS的Server应用。换句话说,CAS的Server应用是无需开发的,只需配置即可。将WAR包应用发布到Tomcat下,然后启动Tomcat。通过浏览器访问CAS应用,此时可以看见一个登录界面。在“用户名”和“密码”框中输入相同的字符串,单击“登录”即可。如果登录成功,则证明CAS的Server应用搭建成功。接下来,我们就需要改变CAS的认证机制。
CAS默认提供很多的认证方式:LDAP、JDBC、自定义等等。
deployerConfigContext.xml文件是CAS用来配置认证方式的配置文件,如果需要修改CAS的认证方式,就需要修改该文件中的authenticationHandlers节点内容。
1.2 通过JDBC进行用户认证
CAS的JDBC认证分为:SearchModeSearchDatabaseAuthenticationHandler和QueryDatabaseAuthenticationHandler等多种方式。它们的区别在于:前者是指定用户表以及表中的相关字段,后者是指定认证用的SQL语句。
1.2.1 配置SearchModeSearchDatabaseAuthenticationHandler方式
修改CAS的认证方式,在authenticationHandlers节点,并追加一个BEAN,用来配置数据库链接。案例见附件:deployerConfigContext-jdbc.xml
拷贝spring-jdbc-2.5.5.jar、commons-collections-3.2.jar、commons-dbcp-1.2.1.jar、commons-pool-1.3.jar 、cas-server-support-jdbc-3.3.jar到CAS的Server应用中。启动Tomcat,如此既可。
1.2.2 配置QueryDatabaseAuthenticationHandler方式
修改CAS的认证方式,在authenticationHandlers节点,并追加一个BEAN,用来配置数据库链接。案例见附件:deployerConfigContext-jdbc-query.xml
拷贝spring-jdbc-2.5.5.jar、commons-collections-3.2.jar、commons-dbcp-1.2.1.jar、commons-pool-1.3.jar、cas-server-support-jdbc-3.3.jar到CAS的Server应用中。启动Tomcat,如此既可。
1.3 通过LDAP进行用户认证
略
2 CAS Client部署
首先在我们的WEB应用中,增加CSA Client的JAR包:casclient-2.0.11.jar。接着在我们正式做CAS的Client之间,我们还需要配置我们的Tomcat或其他中间件,使其支持SSL。
2.1 Tomcat上配置SSL
在Tomcat上配置SSL,我们需要一个证书,这个证书我们可以通过JDK自带的keytool工具制作。
2.1.1 证书制作
JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore C:\tomcat.key
提示输入密码,使用Tomcat的默认值changeit
输入相关信息后确认
将生成PCKS1.2格式的数字证书于C:\tomcat.key
这里需要注意的是“所有者”的设置,该值必须设置成访问应用时的域名。
2.1.2 Server.xml配置
在Tomcat的安装目录下,conf目录里有个Server.xml文件。找到8443端口的Connector,默认情况下是被注释掉的。将其注释去掉,然后增加两个属性:keystoreFile和keystorePass。前者是证书的本地存放目录,后者是该证书的密码(如果我们做证书时使用的是Tomcat的默认密码,即changeit。那么该属性不要亦可)。
启动Tomcat,用HTTPS访问8443端口。看看SSL是否已经启用。
2.2 给JDK增加证书
因为CAS会通过JDK访问HTTPS的服务,故而需要给JDK增加该证书,否则JDK将无法与CAS服务进行通信。
在使用IE通过HTTPS访问应用,产生证书后。右键点击页面,选择“属性”“证书”“详细信息”“复制到文件”。然后安装提示导出证书。
然后,使用keytool工具导入证书。
在${JAVA_HOME}/jre/lib/security/目录下执行如下命令:
keytool -import -alias cacerts -keystore cacerts -file e:\1.cer -trustcacerts
其中e:\1.cer是证书的本地存放目录。
然后,键入密码:changeit既可。
2.3 使用CAS Client
关于CAS Client的使用,我们可以通过Filter、JSP、Tag等方式使用。这些,CAS的官方网站上都有,本文不再叙述。本文重点讲解通过JAVA代码完成认证。
首先,我们需要配置一个SeverLet,假设ServerLet的URL是:acws_sso。然后,在该ServerLet的代码中增加如下代码:
String caServerUrl = "https://shangkaier:8443/cas";
ServiceTicketValidator sv = new ServiceTicketValidator();
sv.setCasValidateUrl(caServerUrl + "/serviceValidate");
sv.setService("https://shangkaier:8443/acws_sso");
sv.setServiceTicket(request.getParameter("ticket"));
sv.validate();
xmlResponse = sv.getResponse();
if (sv.isAuthenticationSuccesful()) {
user = sv.getUser();
} else {
errorCode = sv.getErrorCode();
errorMessage = sv.getErrorMessage(); /* handle the error */
}
其中,shangkaier即为当初制作证书时的所有者。
2.4 验证
在IE浏览中输入如下地址:
https://shangkaier:8443/cas?service=https://shangkaier:8443/acws_sso
其中https://shangkaier:8443/cas为CA应用地址,https://shangkaier:8443/acws_sso为CA中心登录后,重定向地址。
分享到:
相关推荐
CAS整合LDAP实现单点登录学习笔记 包含所有过程。
本篇学习笔记主要聚焦于CAS服务器的数据源配置,这对于理解CAS如何存储和管理用户认证信息至关重要。在CAS的运行中,数据源作为连接数据库的关键组件,用于存储和检索用户凭证、服务定义等信息。 首先,我们需要...
"JA-SIG(CAS)学习笔记2"和"JA-SIG(CAS)学习笔记3"涵盖了CAS的基本概念、架构和配置,以及如何与Java应用集成。JA-SIG是一个高等教育软件联盟,其文档对于理解CAS的教育背景和应用场景非常有帮助。 5. **在...
当用户第一次访问应用时,用户会被重定向到CAS服务器进行登录。成功登录后,CAS服务器会向用户浏览器发放一个票据(通常称为TGT, Ticket Granting Ticket),这个票据可以用来获取访问各种应用服务的权限。 当用户...
在学习CAS Client时,我们将重点关注如何配置CAS Filter和`ProxyTicketReceptor`,以及在Java SE环境下使用`ServiceTicketValidator`进行Ticket认证。 【定制身份认证程序】 要将CAS集成到现有的企业应用中,关键...
标题 "CAS学习" 暗示我们即将探讨的是CAS(Central Authentication Service)系统,这是一个用于网络身份验证的开放源码协议。CAS的主要目标是提供一个简单的方法来实现单点登录(Single Sign-On, SSO)服务,使得...
单点登录(Single Sign-On, SSO)是一种网络身份验证技术,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。CAS(Central Authentication Service)是基于Java的开源SSO协议实现,由JA-SIG...
### SSO CAS Server 二次开发说明文档 #### 环境搭建 为了便于进行二次开发,推荐使用Maven overlays特性来构建开发环境。这样可以利用最新版本的资源文件覆盖现有WAR包中的文件,无需手动导入整个`cas-server-...
总结来说,CAS单点登录是一种有效的用户认证解决方案,而QQ和微博的第三方登录接口则为企业和网站提供了便捷的社会化登录方式。正确集成这些接口,能够提升用户满意度,同时简化登录流程,降低用户流失率。开发者...
1. **重定向至CAS Server**:类似地,当用户第一次访问web2应用时,由于web2应用的session中没有找到令牌凭证信息,它同样将用户重定向到CAS Server进行验证。 2. **TGT的使用**:CAS Server从用户的浏览器Cookie中...
BlueCoat CAS管理员手册笔记根据官方文档整理而成,涵盖了CAS(Content Analysis System)的主要功能组件和系统处理流程。CAS是一种内容分析系统,用于网络安全,特别是对互联网内容的控制和分析。CAS系统能够高效地...
【CAS SSO学习心得】 CAS(Central Authentication Service)是一种广泛使用的单点登录(Single Sign-On,简称SSO)框架,主要由Java编写。在本文中,我们将深入探讨如何配置CAS服务器以及客户端,以便实现单点登录...
CAS(Central Authentication Service)是Java开发的一个开源的单点登录...通过学习和实践,你可以掌握CAS的核心概念,实现自定义认证策略,以及优化客户端集成,从而为你的项目构建一个强大而安全的单点登录系统。