安装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 ...
随机推荐
- 放假回来啦!!小技能:一个div不给width,怎么让它居中捏?`(*∩_∩*)′
答案是:这个div没有浮动的话,就用text-align: center; 有的话...我也不知道了
- WdatePicker日期控件的用法
前台 <td height="25" width="*" align="left"> <asp:TextBox ID=&q ...
- JavaScript 详说事件机制之冒泡、捕获、传播、委托
DOM事件流(event flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(event capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会 ...
- mac 端口转发方案
mac 端口映射 好坑 osx10.10mac移除了ipfw改用pfpf以前没用过 查文档mac的 pf语法,没有找到.bsd的倒是很全,心喜拿来一试.http://www.openbsd.org/f ...
- java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory的解决(碰到问题,转载答案)
自己前一段时间出现了这个问题,通过在网上搜索,大概知道了原因,整理下一,以供大家参考. 将项目部署好后,启动tomcat后报错,java.lang.NoClassDefFoundError: org/ ...
- Nginx密码验证 ngx_http_auth_basic_module模块
有时候我们需要限制某些目录只允许指定的用户才可以访问,我们可以给指定的目录添加一个用户限制. nginx给我们提供了ngx_http_auth_basic_module模块来实现这个功能. 模块ngx ...
- service XXX does not support chkconfig
有时候为了方便管理,我们常常喜欢在Linux中将之安装为服务,然后就可以使用服务来管理. 但是当我们运行安装服务的命令时候,假设服务名为myservice #chkconfig --add myser ...
- Javascript 截取2位小数
今天在处理数据时,前台界面金额需要保留两位小数,所以只能使用Javascript 来进行截取. var regex = /([0-9]+\.[0-9]{2})[0-9]*/; var localMon ...
- Backbone.js
Backbone.js是一套JavaScript框架與RESTful JSON的應用程式介面.也是一套大致上符合MVC架構的編程範型.Backbone.js以輕量為特色,只需依賴一套Javascrip ...
- linux系统编程之错误处理
在linux系统编程中,当系统调用出现错误时,有一个整型变量会被设置,这个整型变量就是errno,这个变量的定义在/usr/include/errno.h文件中 #ifndef _ERRNO_H /* ...