CAS单点登录(SSO)快速应用于企业项目开发(一)前言

来源:互联网 发布:手机注册淘宝小号 编辑:程序博客网 时间:2024/05/22 06:33

一、下载客户端和服务端

1.从CAS官网下载适合的版本CAS服务器:cas-server-4.0.0-release.zip和java版客户端cas-client-3.2.1-release.zip。 

(我使用的是4.0.0的cas服务器版本和3.2.1版本的客户端 ,如果运行过程中,出现票务无法识别或是没有此票务,请先检查排除不是配置的问题后,再考虑更换服务器或者客户端的版本,确保cas的版本与项目中的框架兼容,确保cas服务端与客户端可以兼容。cas不同版本间存在差异明显,配置与方法也有较大差异。)

2.网上有很多适用于写demol的使用过程,在此处就略过此过程,如果有需要,可以参考其他网友的博客  http://desert3.iteye.com/blog/1700335

二、确定使用的通信协议(http/https)

(一).使用cas,可以选择使用http或者https通信协议均可,cas默认使用https,如果需要更改http,

可以找到WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml文件进行修改


(二).如果使用的是https,可以仿照下面的配置:

1、生成服务器端证书文件(可以使用Windows系统或者Linux系统)
(1)Windows环境
条件:已经安装JDK
步骤:
进入%JAVA_HOME%/bin目录
执行命令 : keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 36500

参数简要说明:“F:\tomcat.keystore”含义是将证书文件保存在F盘,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天
在命令行填写必要的参数:
截图如下:



截图部分说明:
A、输入keystore密码:此处需要输入大于6个字符的字符串
B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址
C、“你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
D、输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件
(2)Linux环境
条件:安装了JDK
步骤:
进入$JAVA_HOME/bin目录
执行命令
./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500
参数简要说明:“/etc/tomcat.keystore”含义是将证书文件保存在路径/usr/local/ac/web/下,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天
在命令行填写必要的参数:
截图如下:



截图部分说明:
A、Enter keystore password:此处需要输入大于6个字符的字符串
B、“What is your first and last name?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将来要在浏览器中输入的访问地址
C、“What is the name of your organizational unit?”、“What is the name of your organization?”、“What is the name of your City or Locality?”、“What is the name of your State or Province?”、“What is the two-letter country code forthis unit?”可以按照需要填写也可以不填写直接回车,在系统询问“correct?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息
D、Enter key password for <tomcat>,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以
完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件
 2、配置TOMCAT服务器
(1)如果你是在Windows环境中生成证书文件,则需要将生成的证书tomcat.keystore拷贝到Tomcat将要引用的位置,假设tomcat的应用证书的路径是“/etc/tomcat.keystore”(没有etc目录可以建立一个,当然也可以放在磁盘任意位置 在配置server.xml配置文件中修改好就行),则需要将证书文件拷贝到“etc/”下;如果是在Linux环境按照上述介绍的步骤生成证书文件的话,此时证书文件已经在“etc/”下。
(2)配置Tomcat,打开$CATALINA_HOME/conf/server.xml,修改如下,
注意:443是https的默认端口 和 http的默认端口80一样,如果是做域名映射则至少要开通映射到2个协议的端口否则无法访问
<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" />
修改参数=>
<Connector port="80" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="443" />

<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"/>
-->
去掉注释且修改参数=>
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150"  scheme="https"  secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat.keystore" keystorePass="www.gbcom.com.cn"/>
注释:标识为淡蓝色的两个参数,分别是证书文件的位置和<tomcat>的主密码,在证书文件生成过程中做了设置

<!--
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />
-->
修改参数=>
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />
(3) 打开$CATALINA_HOME/conf/web.xml,在该文件末尾增加:
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
3、上述配置完成后,重启TOMCAT后即可以使用SSL。IE地址栏中可以直接输入地址不必输入“http://” 或者 “https://” ;也可以输入 “http:// ” 会跳转成为 “https://” 来登录
4、注意事项:
(1)生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”
(2)如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your first and last name?”不正确引起的
5、遗留问题:
(1)如果AC主机不能通过域名查找,必须使用IP,但是这个IP只有在配置后才能确定,这样证书就必须在AC确定IP地址后才能生成
(2)证书文件只能绑定一个IP地址,假设有10.1.25.250 和 192.168.1.250 两个IP地址,在证书生成文件时,如使用了10.1.25.250,通过IE就只能使用10.1.25.250 来访问AC-WEB,192.168.1.250是无法访问AC-WEB的。

1 0