测试SSO
1)通过IE访问http://主机名:8080后进入TOMCAT页面后选择example会跳转到CAS得登录面输入相同的用户名密码进入example的登录后页面,至此该简单的SSO结束
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和SSL
1。生成CA证书 在CMD下面输入 keytool -genkey -alias mykey -keyalg RSA -keystore server.keystore
输入keystore密码:123456
再次输入新密码:123456
您的名字与姓氏是什么?
[Unknown]: 主机名或者IP最好是做了host映射的主机名
您的组织单位名称是什么?
[Unknown]: capinfo
您的组织名称是什么?
[Unknown]: capinfo
您所在的城市或区域名称是什么?
[Unknown]: beijing
您所在的州或省份名称是什么?
[Unknown]: beijing
该单位的两字母国家代码是什么
[Unknown]: cn
CN=fengqingyu, OU=capinfo software ltd., O=capinfo, L=beijing, ST=beijing, C=cn 正确吗?
[否]: y
输入<mykey>的主密码
(如果和 keystore 密码相同,按回车):
在生存的目录下找一个文件:server.keystore,这个文件其中就包含了自签名的证书
注意:
这里要求certificate keystore 和certificate的密码一致,此为Tomcat的约束。
添加keystore目录
在TOMCA/apache-tomcat-6.0.16目录下新建目录keystore,并拷贝server.keystore到其目录下
修改配置文件
<Connector
port=”8443″ minSpareThreads=”5″ maxSpareThreads=”75″
enableLookups=”true” disableUploadTimeout=”true”
acceptCount=”100″ maxThreads=”200″
scheme=”https” secure=”true” SSLEnabled=”true”
keystoreFile=”keystore/server.keystore” keystorePass=”123456″
clientAuth=”false” sslProtocol=”TLS”/>
注意:
1)keystoreFile指向文件%TOMCAT_HOME%/keystore/server.keystore文件。
2)keystorePass就是刚才生成certificate keystore的密码。
3)测试Https。访问https://trustauth.cn:8443/,提示有不安全的证书,接受证书,看到可亲的tom猫
4)访问的时候trustauth.cn最好换成你的主机名。
至此SSL协议配置结束。
CAS在tomcat上的发布
1)将下载的cas-server-3.3.3-release.zip解压
2)将解压包内的modules文件夹下的cas-server-webapp-3.3.3.war 拷贝到 tomcat的 webapps 目录,并更名为 cas.war
可以重新启动 tomcat,然后访问:https://trustauth.cn:8443/cas ,如果能出现正常的 CAS 登录页面,则说明 CAS Server 已经部署成功
搭建CAS客户端
1、 配置客户端服务器的HTTPS协议方法同服务端。
2、 客户端的安装
1) 将cas-client-java-2.1.1.zip解压并将\cas-client-java-2.1.1\dist下的casclient.jar拷贝到你所要应用的项目的WEB-INF\lib目录下
2) 将\cas-client-java-2.1.1\lib下的所有包copy到WEB-INF\lib目录下
3、 密钥的交换。
1) 服务端密钥的导出
服务端密钥的导出
keytool -export -file client.cert -alias mykey -keystore server.keystore 注意文件路径
客户端密钥的导入
将导出的client.cert密钥copy到客户端机器上在客户端机器上运行
客户端密钥的导入
将导出的client.cert密钥copy到客户端机器上在客户端机器上运行 也就是C:\Program Files\Java\jdk1.6.0_03\jre\lib\security下面
keytool -import -trustcacerts -file client.cert -keypass changeit -keystore cacerts-alias mykey1
以上客户端就高定
配置文件的修改
<!–用于单点退出 –>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<!–用于单点登录 –>
<filter>
<filter-name>CAS Filter</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<!–下面两个为验证地址,即cas server的地址,如果使用https验证,地址为https://hostname:8443字样 –>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://trustauth.cn:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://trustauth.cn:8443/cas/proxyValidate</param-value>
</init-param>
<!– 本工程的URL,被拦截的地址 –>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>trustauth.cn:8088</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
只要在WEB。XML中加入拦截器即可
相关搜索
sso cas ssl
上一篇:简述Jboss的SSL的配置
下一篇:简述SSL证书的作用