安装CAS服务器
1、简介
参考:
http://www.coin163.com/java/cas/cas.html
CAS主要用于多系统单点登录,属于WEB SSO。SSO体系主要角色有三种:User(多个),WEB应用(多个),SSO认证中心。
CAS结构体系,包括两部分:CAS Server和CAS Client. CAS Servier负责完成对用户的认证工作,需要独立部署,CAS Server会处理用户名/密码等凭证。
CAS Client处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向CAS Server进行认证。(原则上,客户端应用不再接受任何的用户名和密码等).
CAS Client与受保护的客户端用户部署在一起,以Filter方式保护受保护的资源。
基础模式SSO访问流程主要有以下步骤:
1.访问服务:SSO客户端发送请求访问应用系统提供的服务资源。
2.定向认证:SSO客户端会重定向用户请求到SSO服务器。
3.用户认证:用户身份认证。
4.发放票据:SSO服务器会产生一个随机的Service Ticket。
5.验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端访问服务。
5.传输用户信息:SSO服务器验证票据通过后,传输用户认证结果信息给客户端。
协议过程:

介绍:CAS Client与受保护的客户端应用部署在一起,以Filter方式保证WEB应用的受保护资源,过滤从客户端过来的每一个WEB请求,同时,CAS Client会分析HTTP请求中是否包含请求Service Ticket(ST 上图中的Ticket),如果没有,则说明该用户是没有经过认证的;于是CAS Client会重定向用户请求到CAS Server(2),并传递Service(要访问的目的资源地址)。step 3是用户认证过程,如果用户提供了正确的身份,CAS Server随机产生一个相当长度、唯一、不可伪造的Service Ticket,并缓存以待将来难,并且重定向到用户到Service所在地址(附带刚才产生的Service Ticket),并为客户端浏览器设置一个Ticket Granted Cookie(TGC);CAS Client在拿到Service和新产生的Ticket过后,在5和6中与CAS Service进行身份核实,以确保Service Ticket的合法性。
在该协议中,所有与CAS Service的交互均采用SSL协议,以确保ST和TGC的安全性。协议工作过程中会有2次重定向的过程。但是CAS Client和CAS Service之间进行Ticket验证的过程对于用户是透明的.
CAS 请求时序图:

当用户访问另一个应用的服务再次被重定向到CAS Service的时候,CAS Service会主动获到这个TGC cookie,然后做这个事情:
I.如果User持有TGC且其还没失效,那么就走协议图4
II.如果TGC失效,那么用户还是要重新认证。
2.安装CAS 服务器
2.1 下载CAS 服务器
地址:http://pan.baidu.com/s/1o8D3hEE
下载,解压后找到modules文件夹下cas-server-webapp-3.5.2.1.war 改名为ROOT.war 放到tomcat下的webapps下。
2.2 创建CAS密钥库
使用JDK的keytool命令生成密钥库(keystore),其中就是一份keystore文件(在系统用户目录下),keystore必须通过密码才能访问。
keystore里包含了多个密钥对(keypair),每个keypair都有一个别名(alias),alias必须保证唯一性,而且都有一个密码,有此可知,keystore与keypair都有自己的密码。
JDK也有自己的keystore 位于%JAVA_HOME%\jre\lib\security\cacerts 密码是changeit 当然也可以通过keytool命令来修改。
我们首先生成 keppair及其存放keypair的keystore,然后从keystore时导出证书,最后将证书导入jDK的keystore里,Tomcat在运行时就会自动读取JDK的keystore,以确保所部署的应用可以享受HTTPS协议(SSL通道)带来的安全性。
2.3 生成keystore
2.3.1 keytool -genkeypair -alias cas -keyalg RSA -storepass changeit
在当前的用户目录下会生成一份.keystore文件
其中的名称与姓氏写跳转的域名.(在这里在hosts文件写127.0.0.1 cas) hosts文件路径为C:\Windows\System32\drivers\etc
2.3.2 查看keypair keytool -list -storepass changeit
删除 keypair keytool -delete -alias <别名> -storepass changeit
2.3.3 导出证书
keytool -exportcert -alias cas -file cas.crt -storepass changeit
生成的证书文件为cas.crt,位于运行该命令所有的当前目录下。
可双击该证书文件,将该证书安装到"受信任的根证书颁发机构"中,这样在浏览器中就不会出现红叉叉。
2.3.4 导入到JVM中
keytool -importcert -alias cas -file cas.crt -keystore "%JAVA_HOME%"\jre\lib\security\cacerts -storepass changeit -noprompt
PS:ps:该命令中输入的密码和上面输入的不是同一个密码;如果是多台机器演示,需要在每一台客户端导入该证书。
2.3.5 使Tomcat支持HTTPS
tomcat 下的conf\server.xml
修改:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
禁用 HTTP 8080 端口,开启 HTTPS 8443 端口,禁用 AJP 8009 端口,以确保只能通过 HTTPS 协议访问 CAS 服务器。
若将 HTTPS 端口号配置为 443,则可以使用无端口方式发送 HTTPS 请求。
2.3.6 运行CAS服务器
https://cas:8443/login
https://cas:8443/logout

安装CAS服务器的更多相关文章
- 源码安装Memcached服务器及其2种PHP客户端
本文所用源码包皆为当时最新stable稳定版. 安装memcached服务器 先安装libevent, 最新版为2.0.21 tar -zxvf libevent-2.0.21-stable.tar. ...
- Cas 服务器 下载、编译及部署
一直想把公司运营的项目的各个子项的认证及授权统一到Cas上,从有想法到现在快一年的时间了.现在才正式着手,有兴趣的朋友一起交流学习一下.具体项目的细节不便透露,整合的大体思路为:1.开发部署Cas服务 ...
- 从零开始部署CAS服务器
从0开始部署CAS服务器的操作过程文档,我已经整理完毕,一共分为8步,这8步都是我自己操作实践过的. Setp1:Ubuntu server安装 在virtual box中安装ubuntu serve ...
- 【CAS单点登录视频教程】 第02集 -- 安装CAS
目录 ----------------------------------------- [CAS单点登录视频教程] 第06集[完] -- Cas认证 学习 票据认证FormsAuthenticati ...
- CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
CAS (6) -- Nginx代理模式下浏览器访问CAS服务器网络顺序图详解 tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1. ...
- cas协议,以及tomcat搭建cas服务器
1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...
- 基于CAS的单点登录实战(1)-- 搭建cas服务器
公司有几个系统想做SSO,然后开始研究cas.系统是Centos7 搭建CAS服务器 cas的版本比较多,先在网上搜了一下各种教程配置经验.本来想搭建最新的CAS版本,然而为了快速部署,选择了网上教程 ...
- Cas服务器以及客户端搭建
一.搭建cas服务器 官网:http://jasig.github.io/cas/ Cas Server 下载:http://developer.jasig.org/cas/ Cas Client 下 ...
- CentOS安装SVN服务器
Step1:安装svn服务器 $ yum install subversion Step2:创建SVN版本库目录 $ mkdir /workplace/svnrepos Step3:创建版本库 $ s ...
随机推荐
- JS绑定JavaScript事件
//onblur="onblurs(this)" // function onblurs(e) { // alert(e.value); // }
- 未能加载文件或程序集EntityFramework, Version=6.0.0.0解决办法
其他信息: 未能加载文件或程序集"EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934 ...
- oracle生成单据号
--创建单据号存放表 CREATE TABLE BU_TAB( DOC_NUM NUMBER --生成的单据号 ); --单据号 create table cux_doc_num( tab ), -- ...
- Codeforces Round #384 (Div. 2) //复习状压... 罚时爆炸 BOOM _DONE
不想欠题了..... 多打打CF才知道自己智商不足啊... A. Vladik and flights 给你一个01串 相同之间随便飞 没有费用 不同的飞需要费用为 abs i-j 真是题意杀啊, ...
- bootstarp-table表格中嵌套多个BUTON按钮实现
bootstarp-table表格中嵌套多个BUTON按钮实现 有时我们需要在bootsharp-table表格中嵌套多个按钮,来实现不同的功能,大概界面如下: 实现功能如下: 1:构建表格 ...
- Java重点之小白解析--浅谈数据流形式图片上载
文档上载,上载也不知道哪个大神(混球)起的名字,读起来怪怪的,反正平时我只读上传. 闲话少说,直入主题.先等等这两天做文件上传,都快把宝宝折磨疯了,不会呀,各种查呀,最可悲的是废了老大功夫学会了传送文 ...
- Hibernate控制台显示创建数据库表语句
package cqvie.yjq.View; import org.hibernate.Session; import org.hibernate.Transaction; import org.h ...
- Java(数组)动手动脑
1>数组作为方法参数 阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 源代码: // PassArray.java // Pas ...
- IIS上虚拟目录下站点的web.config与根站点的web.config冲突解决方法
IIS7.5上在站点下部署虚拟目录,访问虚拟目录下的项目提示与父节点配置冲突.,节点与的<system.web>节点与主站点的<system.web>冲突解决方法: 在站点下的 ...
- git 调用 Beyond Compare
转载自 http://www.jackness.org/2015/03/31/git-%E8%B0%83%E7%94%A8-%E7%AC%AC%E4%B8%89%E6%96%B9%E5%AF%B9% ...