CAS框架下配置SSO

CAS框架下配置SSO
CAS框架下配置SSO

CAS框架下配置SSO报告

目录

一、SSO(single sign on)单点登录原理

二、CAS架构和基本原理

三、CAS配置实现SSO

(一)配置环境

(二)添加安全证书

(三)实现sso

四、keytool的介绍

(一)密钥与证书

(二)证书的操作

五、HTTPS和SSL

(一)HTTPS简介

(二)SSL(server socket layer)简介

(三)SSL工作原理

sso(single sign on)单点登录原理

单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。

CAS架构和基本原理

CAS官方网站:http://https://www.360docs.net/doc/8e3887338.html,/https://www.360docs.net/doc/8e3887338.html,/

CAS是(Central Authentication Service)是Yale大学发起的构建Web SSO的Java开源项目。

◇CAS的结构体系

1、CAS Server

CAS Server负责完成对用户信息的认证,需要单独部署,CAS Server能够处理用户名、密码等凭证(Credentials)。

2、CAS Client

CAS Client部署在客户端,对本地Web应用受保护资源的访问请求,并且对请求进行身份认证,重新定向到CAS Server进行认证。

◇CAS框架原理

CAS Client 以过滤器的方式保护Web应用的受保护资源,过滤从客户端过来的每一个Web请求,同时,CAS Client 会分析HTTP请求中是否包含请求Service Ticket,如果没有,则说明该用户是没有经过认证的,CAS Client会重定向用户请求道CAS Server。如果用户提供了正确的认证信息,CAS Server会产生一个随机的Service Ticket,会向User发送一个Ticket Granting Cookie(TGC)给User的浏览器,并且重定向用户到CAS

Client(携带着Ticket),CAS Client和CAS Server之间完成一个对用户的身份核实,用Ticket查到Username,认证成功。

◇CAS实现SSO

当用户访问网站再次被重定到CAS Server会主动获到这个TGC,如果User持有TGC 且还没失效,那么就可以直接访问网站,实现SSO;如果TGC失效,那么用户还是要重新认证。

CAS配置实现SSO

◇配置环境

我们下载apache-tomcat-6.0.20,并将CAS Server 和CAS Client同时放在Tomcat的webapps目录下。下载jdk1.6.0_21,并配置好JDK和Tomcat的环境变量。

配置方法如下:

右键点击我的电脑→属性→高级系统设置→环境变量,在系统变量中添加变量CLASSPATH设置值为

.;%JA V A_HOME%\lib\dt.jar;%JA V A_HOME%\lib\tools.jar;%JA VA_HOME%\lib;%CATAL INA_HOME%\lib(注意在值最前面有一个“.”)

添加一个变量JA V A_HOME,设置值为:

C:\Program Files\Java\jdk1.6.0_21(根据自己安装的jdk的路径填写)

添加一个变量Path,设置值为:

;%JA V A_HOME%\bin;%JA V A_HOME%\jre\bin;%CATALINA_HOME%\bin;C:\Program Files\MySQL\MySQL Server 5.1\bin;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\

配置Tomcat环境变量:

添加变量CATALINA_HOME,设置值为:

C:\Program Files\apache-tomcat-6.0.20

配置完成后,启动tomcat,并输入http://localhost:8080/,此时显示出tomcat的欢迎界面。

从CAS官方网站上下载:cas-server-3.3.3-release.zip

Cas-client-java-2.1.1

Server需要的Jar包:cas-Server-support-jdbc-3.3.3.jar

Mysql-connector-java-5.1.7-bin.jar

Org.springframework.jdbc-3.0.0.M3.jar

Client需要的jar包:casclient-2.1.1.jar

Commons-logging-1.0.4.jar

◇添加安全证书

1、生成server的证书库文件

在dos命令下将默认路径更改到keytool.exe所在的目录下,也就是c:\program files\java\jdk\bin(根据自己的jdk路径更改)。

并在输入如下命令:

Keytool –genkey –alias tomcat –keyalg RSA –keystore keystore-file

输入命令后,会显示“输入keystore密码”(密码为自己设置)。接下来按照系统提示完成相关内容的填写。系统生成的证书文件(.keystore)默认存储在用户目录下,将其复

制到tomcat\conf目录下。

2、导出Server端的证书文件。

输入如下命令:

Keytool –export –file myserver.crt –alias tomcat –keystore .keystore

证书导出到java\jre6\bin目录下。

3、在客户端的JVM里的证书库cacers中导入信任的SERVER的证书

Keytool –import –keystore cacerts –file myserver.crt –alias tomcat

然后将cacerts(在java\jre6\bin目录下)复制到java/jre/lib/security目录下。

实现SSO(这里以tomcat自带的examples为例)

1、将cas-Server-3.3.3-release.zip解压,并将\ cas-Server-3.3.3\modules cas-Server-webapp-3.3.3.war文件拷贝到tomcat\webapps下,并改名为cas.war。

2、将casclient-2.1.1.jar和commons-logging-1.0.4.jar拷贝到examples\web-INF\lib目录下。

3、修改Tomcat配置文件,启用SSL和HTTPS,tomcat/conf/server.xml里取消下面代码的注释:

port="8443" sprotocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS" />

在其中添加keystorePass="8903239" keystoreFile="/conf/.keystore"

配置好后,代码如下:

port="8443" sprotocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystorePass="8903239" keystoreFile="/conf/.keystore"/>

注意:keystorePass="8903239‖,就是再生成证书时设置的密码

keystoreFile="/conf/.keystore"就是证书文件的存放路径

4、在tomcat\webapps\examples\web.xml中增加如下代码:

SSL

/*

CONFIDENTIAL

注释:transport-guarantee元素指定了客户端和服务器的通信关系,有NONE,INTEGRAL,CONFIDENTIAL,NONE表示应用不需要任何传输保障,INTEGRAL 表示数据在客户端到服务器的过程中不能有任何改变。CONFIDENTIAL表示在传输过

程中防止其他传输内容的干扰。在使用SSL是常用的是INTEGRAL和CONFIDENTIAL。

5、修改examples\web-INF\lib中web.xml文件。

在要使用CAS的客户端应用里设置实现SSO。

CASFilter

edu.yale.its.tp.cas.client.filter.CASFilter

edu.yale.its.tp.cas.client.filter.loginUrl

https://Server:port:8443/cas/login

edu.yale.its.tp.cas.client.filter.validateUrl

https:// Server:port/cas/proxyValidate

edu.yale.its.tp.cas.client.filter.serverName

client:port

CASFilter

/*

配置好的例子:

CASFilter

edu.yale.its.tp.cas.client.filter.CASFilter

edu.yale.its.tp.cas.client.filter.loginUrl

https://wu-PC:8443/cas/login

edu.yale.its.tp.cas.client.filter.validateUrl

https://wu-PC:8443/cas/proxyValidate

edu.yale.its.tp.cas.client.filter.serverName

wu-PC:8443

CASFilter

/*

(wu-pc为主机名)

6、测试。

在internet浏览器上输入http://主机名:8443/examples

链接到cas登录界面进行测试。

7、注销功能

CAS Single Sign Out Filter

org.jasig.cas.client.session.SingleSignOutFilter

CAS Single Sign Out Filter

/*

org.jasig.cas.client.session.SingleSignOutHttpSessionListener

!注意:这段代码要写在casfiler的前面,否则运行时会报错。

Keytool的介绍

1、密钥与证书

keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。

证书是来自一个实体(个人、公司等)的经数字签名的声明,它声明某些其它实体的公钥(及其它信息)具有某一的特定值(参见证书)。当数据被数字化签名后,校验签名即可检查数据的完整性和真实性。完整性的意思是数据没有被修改或损坏过,真实性的意思是数据的确是来自声称创建了该数据和对它进行了签名的实体。

keytool 将密钥和证书储存在一个所谓的密钥仓库中。缺省的密钥仓库实现将密钥仓库实现为一个文件。它用口令来保护私钥。

jarsigner 工具利用密钥仓库中的信息来产生或校验Java 存档(JAR) 文件的数字签名(JAR 文件将类文件、图象、声音和/或其它数字化数据打包在一个文件中)。jarsigner 用JAR 文件所附带的证书(包含于JAR 文件的签名块文件中)来校验JAR 文件的数字签名,然后检查该证书的公钥是否―可信任‖,即是否包括在指定的密钥仓库中。

请注意:keytool 和jarsigner 工具完全取代了JDK 1.1 中提供的javakey 工具。这些新工具所提供的功能比javakey 提供的多,包括能够用口令来保护密钥仓库和私钥,以及除了能够生成签名外还可以校验它们。新的密钥仓库体系结构取代了javakey 所创建和管理的身份数据库。可以利用-identitydb keytool 命令将信息从身份数据库导入密钥仓库。

通过keytool –help可以查看它的用法。

每一个证书库是一个文件组成,他有访问密码,在首次创建时,它会自动生成证书

库,并要求指定访问证书库的密码。

在创建证书库的时候,需要填写证书的信息和对应的私用密钥。这些信息包括CN (common name –名字与姓氏):域名,比如localhost,OU(organization unit –组织单位名称),O(organization 组织名称),L(locality 城市或区域名称),ST(state –州或省份名称),C(country –国家名称)。

☆创建一个证书

指定证书库为D:/keystore/test,创建别名为tomcat的一条证书,它指定用RSA算法生成,且指定密钥长度为1024,证书有效期为1年:

Keytool –genkey –alias Tomcat –keyalg RSA –keysize 1024 –keystore c:/keystore/test –validity 365

显示证书:keytool –list –keystore C:/keystore/test将显示证书库中所有证书的列表。

☆导出证书文件

使用命令:keytool –export –alias tomcat –file C:/keystore/TC.cer –keystore c:/keystore/test将把证书库中的别名为tomcat的证书导出到TC。Cer证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。

导出的证书文件是以二进制编码文件,无法用文本编辑器正确显示,可以加上–rfc 参数以一种可打印的编者编码输出,如;

Keytool –export –alias tomcat –file C:/keystore/TC.cer –keystore c:/keystore/test –rfc

☆查看证书信息

通过命令:keytool –printcert –file D:/keystore/TC.cer可以查看证书文件的信息,也可以在windows资源管理器重双击产生的证书文件查看。

☆删除密钥库中的条目

Keytool –delete –alias tomcat –keystore C:/keystore/test

这条命令将C:/keystore/test库中的tomcat这条证书删除了。

☆修改证书条目口令

Keytool –keypasswd –alias tomcat –keystore c:/keystore/test,可以用交互的方式修改c:/keystore/test证书库中的条目为tomcat的证书。

Keytool –keypasswd –alias tomcat –keypass oldpasswd –new newpasswd –storepass storepasswd –keystore C:/keystore/test这一行命令以非交互的方式修改库中别名为tomcat 的证书的密码为新密码newpasswd,行中的oldpasswd是指该条证书的圆密码,storepasswd是指证书库的密码。

HTTPS和SSL

1、HTTPS简介

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议,它是由Netscape 开发并内置于浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果,HTTPS实际上应用了netscape的完全套接字层(SSL)作为HTTP应用层的子层,(HTTPS 使用端口8443,而不是像HTTP那样使用端口8080来和他、TCP/IP进行通信)。

2、SSL(Server Socket Layer)简介

在网络上信息在源-宿的传递过程中会经过其它的计算机。一般状况下,中间的计算机不会坚挺路过的信息,但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。由于Internet和Intranet体系结构的原因,总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展,人们对信息安全的要求也越来越高。因此Netscape公司提出了SSL协议,旨在达到在开放网络(Internet)上安全保密地传输信息的目的,这种协议在web上获得了广泛的应用,之后IETF(https://www.360docs.net/doc/8e3887338.html,)对SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS1.0与SSL3.0的差别非常小。

3、SSL工作原理

用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器。如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL 握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。

CAS_SSO单点登录实例详细步骤

CAS SSO单点登录实例详细步骤 原创作者:孙俊财

第一步 1、用keytool生成证书: 命令: keytool -genkey -alias sjc -keyalg RSA -keysto re c:/store/mykey 说明: 这里-alias sjc 是表示生成的这个证书的别名叫sjc,-keyalg RSA 指的是采用的RSA算法,-keystore c:/store/mykey是指生成的证书存储的位置。回车后会提示你输入keystore password,这可以自己定(这里输入sunjuncai,下面配tomcat时要用的),然后是一些个人信息及组织信息,可以轻松搞定。 注意:密码输入后,会让你输入其他信息,记得这里第一个姓名必须是服务器的域名这里我输入的是完整计算机名称:gaofeng.nmc.hamcc 这里要注意如果不这样写就会报如下异常: java.io.IOException: HTTPS hostname wrong: should be 实战: C:\Documents and Settings\wangyoushi8>keytool -genkey -alias sjc -keyalg RSA -keystore c:/store/mykey 输入keystore密码:sunjuncai

您的名字与姓氏是什么? [Unknown]:gaofeng.nmc.hamcc 您的组织单位名称是什么? [Unknown]:上海神洲数港 您的组织名称是什么? [Unknown]:网络优化 您所在的城市或区域名称是什么? [Unknown]:郑州 您所在的州或省份名称是什么? [Unknown]:河南 该单位的两字母国家代码是什么 [Unknown]:ZH CN= gaofeng.nmc.hamcc, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=ZH 正确吗? [否]:y 输入的主密码 (如果和keystore 密码相同,按回车): 2、创建证书后,就导出证书: 命令: keytool -export -file c:/store/server.crt -alias sjc -keystore c:/store/mykey 说明: 从c:/store/mykey里取出证书入到c:/store/下,如果没有指定,就是存放在目录下C:\Documents and Settings\用户目录名\ 实战: C:\Documents and Settings\wangyoushi8>keytool -export -file c:/store/server.crt -alias sjc -keystore C:/store/mykey 输入keystore密码:sunjuncai 保存在文件中的认证 3、为客户端的JVM导入密钥: 命令: keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc 说明: 注意:输入密码时密码为"changeit",这是默认密码. 特别说明:这个D:/jdk1.5.0_12/jre/lib/security/cacerts是指JDK的JRE路径下的lib目录. 至此,第一步完成。 实战: C:\Documents and Settings\wangyoushi8> keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc 输入keystore密码:changeit

CAS单点登录配置全过程

CAS配置全过程 软件工具: 1.cas-server-3.3.5-release.zip(CAS服务端) 2.cas-client- 3.1.10-release.zip(CAS客户端) 3.apache-tomcat-7.0.40 https://www.360docs.net/doc/8e3887338.html,mons-dbcp-all-1.3-r699049.jar 5.mysql-connector-java-5.1.18-bin.jar 6.cas-server-jdbc-3.0.5-rc2.jar 写在前面的话 此配置是根据当前系统,当前的版本,仅供参考,如果有什么其他的问题可以一起研究。 第一节:先走通技术障碍 第一步:环境部署 1.在Tomcat 根目录下创建一个cas目录。 2.下载CAS服务器并解压,打开cas-server- 3.3.5\modules,将cas-server-webapp-3.3.5.war复制到刚刚在Tomcat创建的cas目录下,并重命名为ROOT.war 3.修改host文件(C:\Windows\System32\drivers\etc)添加 127.0.0.1 https://www.360docs.net/doc/8e3887338.html, 注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,

可以不配置此项,下文有用到https://www.360docs.net/doc/8e3887338.html,,可以用相应PC机的IP代替 4.修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml) 添加内容: 5.启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入https://www.360docs.net/doc/8e3887338.html,:8080如果出现以下界面,则CAS服务端配置成功。 注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。 第二步:配置数据库验证 1.打开deployerConfigContext.xml,在apache-tomcat-7.0.40\cas\ROOT\WEB-INF目录下,找到如下代码: 添加下面代码: 2.增加数据源dataSource, 在deployerConfigContext.xml,(跟上面同一个文件)找到 ,在下面添

CAS认证实现单点登录

CAS认证实现单点登录 一.背景 有几个相对独立的java的web应用系统,各自有自己的登陆验证功能,用户在使用不同的系统的时候,需要登陆不同的系统。现在需要提供一个 统一的登陆/登出界面,而不修改各个系统原来的登陆验证机制。于是采用单点登录系统开源单点登录产品CAS。 随着新的业务网站不断的增加,用户在每个应用系统中都有独立的账号,这样就造成在访问不同的应用系统时,需要记录对应的用户名和密码,多 个用户名密码极易记混,如果忘记或记错了某一个业务网站的用户名或密码就无法进行登录,耽误工作,影响工作效率 允许用户一次性进行认证之后,就访问系统中不同的应用 二.原理 CAS 是一个独立的web 应用, 当前使用Java Servlets 实现,通过HTTPS 协议保证其数据的传输安全性。它通过三个Url 地址进行访问:登录Url、验证URL、注销URL。

三. CAS认证集成 要使用单点登录,需要部署CAS系统,CAS服务端可以直接部署在tomcat下运行,对于CAS服务端来说,所有要集成单点登录的web应用都是它的一个客户端,CAS有客户端jar包,客户端web应用需要引入CAS客户端的jar包,这样CAS系统的服务端和客户端web应用程序端才能通信。 客户端web应用程序的通过配置web.xml,添加CAS需要的各种过滤器,来实现和CAS服务器通信,用户信息验证工作在CAS 服务端统一完成,验证通过后,客户端web应用程序只需要补全自己的Session信息即可。 3.1部署CAS系统服务端 步骤1:准备好以下运行环境 jdk1.6+

tomcat6+ jdk与tomcat的下载、安装、配置在此略过。 步骤2:安装部署cas-server 到官网(https://www.360docs.net/doc/8e3887338.html,/cas/cas-server-3.5.0-release.zip)下载cas-server-3.5.0-release.zip。解压缩以后,在其路 径 cas-server-3.5.0\modules 下面找到 cas-server-webapp-3.5.0.war,将其拷贝到 tomcat 的webapps 下,改名为 cas.war, 并修改 war 包中配置文件 cas.properties 里的 cas server name=cas 并启动 tomcat,启动后可在浏览器访 问 http://localhost:8080/cas/login

CAS单点登录

CAS单点登录总结 一、服务端搭建 1.安装JDK。 2.安装Tomcat。安装版本Tomcat7.0. 3.在Tomcat上配置SSl (1)生成证书。在C盘根目录下建立子文件夹“Keys”,用于存放证书。在 JDK安装文件夹下的bin文件夹(C:\Program Files\Java\jre1.8.0_60\bin)下打开“命令窗口”。 (2)执行命令“keytool -genkey -alias tomcat -keyalg RSA -storepass changeit -keystore c:\keys\.keystore -validity 3600”创建证书。 (3)将证书导入的JDK的证书信任库中 第一步:导出证书。 执行命令“keytool -export -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore c:\keys\.keystore -storepass changeit”将证书导出到Keys文件夹。 第二步:将证书导入到JDK证书信任库。 执行命令“keytool -import -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore "C:\Program Files\Java\jre7\lib\security\cacerts" -storepass changeit”。系统询问 是否信任此证书,回答“y” 4、配置server.xml文件 用文本编辑器管理员身份运行,打开Tomcat7.0下的server.xml文件(C:\Program

CAS实现单点登录(SSO)经典完整教程

一、简介 1、cas是有耶鲁大学研发的单点登录服务器 2、本教材所用环境 ?Tomcat7.2 ?JDK6 ?CAS Service 版本 cas-server-3.4.8-release ?CAS Client版本 cas-client-3.2.1-release 二、生成证书 证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用了 JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。 中文官方网站:https://www.360docs.net/doc/8e3887338.html,/cn/ 1、用JDK自带的keytool生成证书 view plain 1.命令:keytool -genkey -alias smalllove -keyalg RSA -keystore D:/keys/smallkey 此命令是生成一个证书,其中smalllove 是证书别名 此命令的执行如图所示:

其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,注意不要写IP。 2、导出证书 view plain

1.命令:C:\>keytool -export -file d:/keys/small.crt -alias smalllove -keystore d:/keys/smallkey 如图: 密码为上步设置的密码。 3、把证书导入到客户端JDK中。 view plain 1.命令:keytool -import -keystore C:\Java\jdk1.6.0_21\lib\security\cacerts -file D:/keys/small.crt -alias smalllove 此命令是把证书导入到JDK中。 如图:

单点登录_尚学堂CAS讲义

一.SSO (Single Sign-on)原理 SSO 分为Web-SSO和桌面SSO。桌面SSO 体现在操作系统级别上。Web-SSO体现在客户端,主要特点是:SSO 应用之间使用Web 协议( 如HTTPS) ,并且只有一个登录入口。我们所讲的SSO,指Web SSO 。 SSO 的体系中,有下面三种角色: ?User(多个) ?Web应用(多个) ?SSO认证中心(一个) SSO 实现模式千奇百怪,但万变不离其宗,包含以下三个原则: ●所有的登录都在 SSO 认证中心进行。 ●SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的 用户。 ●SSO 认证中心和所有的 Web 应用建立一种信任关系。 二.CAS 的基本原理 CAS(Central Authentication Service) 是Yale 大学发起的构建Web SSO 的Java开源项目。 1.CAS 的结构体系 ◆CAS Server CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名/ 密码等凭证(Credentials) 。 ◆CAS Client CAS Client部署在客户端,当有对本地Web 应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到CAS Server 进行认证。 2.CAS 协议 基础协议

上图是一个基础的CAS 协议,CAS Client 以过滤器的方式保护Web 应用的受保护资源,过滤从客户端过来的每一个Web 请求,同时,CAS Client 会分析HTTP 请求中是否包请求Service Ticket( 上图中的Ticket) ,如果没有,则说明该用户是没有经过认证的,CAS Client 会重定向用户请求到CAS Server (Step 2 )。Step 3 是用户认证过程,如果用户提供了正确的认证信息,CAS Server 会产生一个随机的Service Ticket ,会向User 发送一个Ticket granting cookie (TGC) 给User 的浏览器,并且重定向用户到CAS Client (附带刚才产生的Service Ticket),Step 5 和Step6 是CAS Client 和CAS Server 之间完成了一个对用户的身份核实,用Ticket 查到Username ,认证通过。 3.CAS 如何实现SSO 当用户访问Helloservice2再次被重定向到CAS Server 的时候,CAS Server 会主动获到这个TGC cookie ,然后做下面的事情: 1)如果User 的持有TGC 且其还没失效,那么就走基础协议图的Step4 ,达到了 SSO 的效果。 2)如果TGC 失效,那么用户还是要重新认证( 走基础协议图的Step3) 。 三.实践配置 下面我们以tomcat 5.5 为例进行说明(这里,我将Server和Client同时放在了同一个Tomcat服务器下)。 软件环境:tomcat 5.5 ant-1.6.5, jdk1.5.0_06 下载cas-server-3.0.4.zip和cas-client和cas-server-jdbc-3.0.5-rc2.jar和mysql 5.0.16和tomcat 5.5.15 https://www.360docs.net/doc/8e3887338.html,/downloads/cas/cas-server-3.0.4.zip

CAS3.5.2单点登录详解

服务端cas: 从网上下载cas:https://www.360docs.net/doc/8e3887338.html,/ 在cas下: 在cas-client下: 解压cas-server-3.5.2-release.zip\cas-server-3.5.2\module\cas-server-webapp-3.5.2.war部署到tomcat上, 设置 F:\apache-tomcat-6.0.30\webapps\cas\WEB-INF\cas-servlet.xml(大家取实际情况的路径) 默认为false,这个设置是为了让登出(logout)以后进入到指定页面. 设置deployerConfigContext.xml 配置数据源和加密: oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:orcl require require 然后注释掉下面这行,这行是为了测试使用,只要账号密码相同就可以通过验证

软件工程-使用CAS实现SSO简洁教程

目录 0. 文档介绍 (2) 0.1文档目的 (2) 0.2文档范围 (2) 0.3读者对象 (2) 0.4参考文献 (2) 0.5术语与缩写解释 (2) 1.概述 (3) 1.1背景 (3) 1.2环境 (3) 1.3下载资源 (3) 2. 配置CAS SERVER (4) 2.1简单配置 (4) 2.2数据库验证配置 (5) 2.3参数配置 (8) 2.4HTTPS验证配置 (10) 2.5自定义页面 (13) 3. 配置JAVA CLIENT (16) 3.1HTTPS验证 (16) 3.2HTTP验证 (18) 4. 配置DOTNET CLIENT (19) 5. 配置PHP CLIENT (23) 6. 如何实现单点注销 (23)

0. 文档介绍 0.1 文档目的 记录使用CAS实现SSO的过程。 0.2 文档范围 使用CAS实现SSO的过程。 0.3 读者对象 任何有兴趣的家伙。 0.4 参考文献 提示:列出本文档的所有参考文献(可以是非正式出版物),格式如下:[标识符] 作者,文献名称,出版单位(或归属单位),日期 大部分都是网络上查询的资料,很多,不列举了。 0.5 术语与缩写解释

1.概述 1.1背景 单点登录是必须的,实现方式颇多,这里就说使用CAS的实现方式。使用CAS实现SSO,网络上说明很多,大部分都是从制作证书开始,而实际上是可以不使用HTTPS 验证,这样更方便。 单点登录的原理是通过拦截你设定的URL,并跳转到你指定的CAS SERVER登录页,当你登录成功后,带着TICKET,返回到你打开的URL。然后你就可以一票在手,畅通无阻。 网上有个家伙用旅游的套票来解释单点登录,非常形象。当你到达一个旅游区门口,你可以买一个套票,套票规定你可以游览N个景点,进入这些景点的时候,你不需要再买票,也就实现了单点登录。 同时,也可以借用这个比喻说明一下单点注销。当你打开一个应用A时,单击了注销按钮,跳转到http://hostname:port/cas/logout或者https://hostname:port/cas/logout,系统显示注销成功。此时,IE窗口没有关闭,你继续打开应用A,仍然没有注销成功,不需要登录。这就相当于你已经在旅游景点内,即使你把套票撕毁了,你仍然可以继续参观这个景点,不会把你驱逐出去。但是,你再也进不了其它的景点了。 那么怎么实现立即生效的注销呢?或者这种方式是否就满足我们的需求呢? 1.2环境 Windows XP、JDK1.6.03、Tomcat6.0.20 注意:配置好环境变量。 1.3下载资源 服务器端:https://www.360docs.net/doc/8e3887338.html,/downloads/cas 当前最新版本是3.3.4,测试安装的版本为3.3.3 cas-server-3.3.3-release.zip 客户端:https://https://www.360docs.net/doc/8e3887338.html,/svn/cas-clients/ cas-client-2.0.11.zip JAVA支持单点登录 cas-client-3.1.8-release.zip JAVA支持单点注销 dotnet-client DOTNET支持类 phpcas PHP支持

CAS 单点登录操作文档

这人CAS 在 Tomcat 中实现单点登录 1证书生成及导入 1.1Server端证书配置 1.2 JAVA信任证书库 D:\Program Files\Java\jdk1.5.0\jre\lib\security\cacerts cacerts证书库默认密码-storepass changeit 查看证书 1.1.1.2 keytool -list -keystore cacerts -storepass changeit 如果存在则删除 1.1.1.1 keytool -delete -alias tomcatsso -keystore cacerts -storepass changeit 创建证书库 1.1.1.3 keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=https://www.360docs.net/doc/8e3887338.html," -keystore server.keystore -storepass 12345678 导出证书 1.1.1.4 keytool -export -alias tomcatsso -file tomcatsso.crt -keystore server.keystore -storepass 12345678 加入JAVA信任证书库 1.1.1.5 keytool -import -alias tomcatsso -file tomcatsso.crt -keystore ../jre/lib/security/cacerts -storepass changeit 说明:在生成key的过程,"cn=https://www.360docs.net/doc/8e3887338.html," 中的https://www.360docs.net/doc/8e3887338.html,为Server端的域名(必填)。 1.2.1TOMCAT 配置SSL支持

基于CAS模式的单点登录系统设计与分析

Computer Science and Application 计算机科学与应用, 2019, 9(7), 1434-1440 Published Online July 2019 in Hans. https://www.360docs.net/doc/8e3887338.html,/journal/csa https://https://www.360docs.net/doc/8e3887338.html,/10.12677/csa.2019.97161 Design and Analysis of Single Sign on System Based on CAS Mode Xiaowei Xu, Jinlei Wang, Wenfei Jiang, Fengjuan Cui North China Sea Data and Information Service, SOA, Qingdao Shandong Received: Jul. 9th, 2019; accepted: Jul. 22nd, 2019; published: Jul. 29th, 2019 Abstract In order to solve the problem of the integration of the existing business application system of NCS, this paper makes a deep research on the principle of CAS integrated authentication, and designs a single sign on system based on CAS mode. Based on the actual situation of various software systems of NCS, this paper analyzes the problems faced by various systems to achieve single sign-on, propos-es different solutions to these problems, and provides technical route for the integration of business application systems of NCS, so as to realize the construction of single sign-on system of NCS. Keywords CAS Authentication, SSO, System Integration 基于CAS模式的单点登录系统设计与分析 徐晓玮,王金磊,姜雯斐,崔凤娟 国家海洋局北海信息中心,山东青岛 收稿日期:2019年7月9日;录用日期:2019年7月22日;发布日期:2019年7月29日 摘要 针对自然资源部北海局现有业务应用系统整合问题,对CAS集成认证原理进行深入研究,设计搭建了基于CAS模式的单点登录系统。结合北海局各类软件系统的实际情况,分析各类系统实现单点登录所面临的问题,针对这些问题提出不同的解决方案,为北海局业务应用系统的整合集成提供技术路线,以实现北海局单点登录系统的建设。

统一身份认证-CAS配置实现

一、背景描述 随着信息化的迅猛发展,政府、企业、机构等不断增加基于 Internet/lntranet的业务系统,如各类网上申报系统,网上审批系统,OA系统等。系统的业务性质,一般都要求实现用户管理、身份认证、授权等必不可少的安全措施,而新系统的涌现,在与已有系统的集成或融合上,特别是针对相同的用户群,会带来以下的问题: 1、每个系统都开发各自的身份认证系统,这将造成资源的浪费,消耗开发 成本,并延缓开发进度; 2、多个身份认证系统会增加系统的管理工作成本; 3、用户需要记忆多个帐户和口令,使用极为不便,同时由于用户口令遗忘 而导致的支持费用不断上涨; 4、无法实现统一认证和授权,多个身份认证系统使安全策略必须逐个在不 同的系统内进行设置,因而造成修改策略的进度可能跟不上策略的变化; 5、无法统一分析用户的应用行为 因此,对于拥有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证,并减少信息化系统的成本。单点登录系统的目的就是为这样的应用系统提供集中统一的身份认证,实现“一点登录、多点漫游、即插即用、应用无关”的目标,方便用户使用。 二、CAS简介 CAS( Ce ntral Authe nticati on Service ),是耶鲁大学开发的单点登录系 统(SSO single sign-on ),应用广泛,具有独立于平台的,易于理解,支持代理功能。CAS S统在各个大学如耶鲁大学、加州大学、剑桥大学、香港科技大学等得到应用。Spring Framework的Acegi安全系统支持CAS并提供了易于使用的方案。Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi 安全系统能够轻松地适

CAS单点登录集成文档

一、介绍 CAS单点登录为业务系统提供统一的单点登录服务。业务系统不需要开发自己的登录界面,系统使用者也避免了在多个业务系统间重复输入密码,改善了用户体验,同时密码实现集中维护,提高了系统的安全性。 单点登录演示地址:http://172.16.10.40:1433/cas/login(社管平台测试环境)业务系统可以使用这个地址进行开发测试。 二、下载 CAS为J2EE B/S应用提供了应用集成API,可以直接调用实现单点登录的集成。:cas-client.jar 文件下载后复制到业务系统的WEB-INF/lib目录。 三、配置 在web.xml中配置认证过滤器(实现单点登录用户认证)和会话监听器(实现单点登录的注销),例如: com.iflytek.cas.listener.LogoutSessionListener casFilter com.iflytek.cas.filter.TicketValidationFilter appUrl casLoginUrl http://172.16.10.40:1433/cas/login ticketValidateUrl http://172.16.10.40:1433/cas/validate casFilter /* 过滤器参数说明: 1、appUrl:Client会根据浏览器请求自动判断这个地址,所以一般情况下是不需要设置的。但是在反向代理环境中,CAS Client会得到代理服务器的地址,所以必须手工指定这个地址。

SSO之CAS单点登录详细搭建

SSO之CAS单点登录详细搭建: 环境说明: 同一个机器上环境如下: 操作系统:windows7 64位 JDK版本:1.7.0_80 web容器版本:apache-tomcat-7.0.70 64位 服务端:cas-3.5.2.1.zip 服务端现在地址:https://https://www.360docs.net/doc/8e3887338.html,/apereo/cas/archive/v4.2.3.zip 客户端:cas-client-3.3.3-release.zip 客户端下载地址:https://www.360docs.net/doc/8e3887338.html,/cas-clients/ eclipse版本:eclipse-jee-luna-SR2-win32-x86_64.zip 1、将cas-3.5.2.1 cas-client-3.3.3 标准maven工程导入eclipse 打包编译; 2、修改本机C:\Windows\System32\drivers\etc\hosts (CAS单点登录系统是基于JAVA安全证书的https 访问,要使用CAS单点登录必须要配置域名, cas是不能通过ip访问的.) 附件-->记事本管理员权限编辑hosts文件,加入如下三行代码后保存。 127.0.0.1 https://www.360docs.net/doc/8e3887338.html, 127.0.0.1 https://www.360docs.net/doc/8e3887338.html, 127.0.0.1 https://www.360docs.net/doc/8e3887338.html, 解释: https://www.360docs.net/doc/8e3887338.html, =>> 对应部署cas server的tomcat,这个虚拟域名还用于服务端证书生成 https://www.360docs.net/doc/8e3887338.html, =>> 对应部署client1客户端应用的tomcat https://www.360docs.net/doc/8e3887338.html, =>> 对应部署client2客户端应用的tomcat 3、安全证书配置 3.1、管理员模式打开cmd命令窗口,生成证书,在cmd窗口输入以下命令: C:\Users\Administrator>keytool -genkey -alias ssoflyer -keyalg RSA -keysize 1024 -keypass flyer2016 -validity 365 -keystore D:\app\flyer.keystore -storepass flyer2016 说明:-alias自定义的别名; -keypass指定证书密钥库的密码; -storepass和前面keypass密码相同,否则下面tomcat配置https会访问失败; -keystore指定证书的位置,例如:D:\app\目录,密钥库名称可以自定义,例如:flyer.keystore 特别注意:您的名字与姓氏是什么?该项一定要使用网站的域名,例如: https://www.360docs.net/doc/8e3887338.html, ,Cas Client使用httpclient访问cas server的时候,会严格的检查证书。 示例如下: C:\Users\Administrator>keytool -genkey -alias ssoflyer -keyalg RSA -keysize 1024 -keypass

CAS单点登录

CAS基本原理与配置 1

版本1.0 日期:2015年11月20日2

目录 1基本原理 (4) 1.1概念简介 (4) 1.2CAS基本原理 (5) 2配置说明 (8) 2.1配置JDK证书 (8) 2.2配置CAS服务器 (10) 2.3配置CAS客户端 (11) 2.4定制化说明 (17) 2.4.1 页面定制化 (17) 2.4.2 数据库定制化 (18) 2.4.3 增加图片验证和短信验证 (20) 2.4.4 增加自定义登录验证 (26) 3

1基本原理 1.1概念简介 单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS ( Central Authentication Service )是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。CAS 开始于 2001 年,并在 2004 年 12 月正式成为 JA-SIG 的一个项目。 CAS主要特性: 1、开源的、多协议的 SSO 解决方案; Protocols : Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等; 2、支持多种认证机制: Active Directory 、 JAAS 、 JDBC 、 LDAP 、 X.509 Certificates 等; 3、安全策略:使用票据( Ticket )来实现支持的认证协议; 4、支持授权:可以决定哪些服务可以请求和验证服务票据( Service Ticket ); 5、提供高可用性:通过把认证过的状态数据存储在 TicketRegistry 组件中,这些组件有很多支持分布式环境的实现,如: BerkleyDB 、 Default 、 EhcacheTicketRegistry 、 JDBCTicketRegistry 、 JBOSS TreeCache 、 JpaTicketRegistry 、 MemcacheTicketRegistry 等; 6、支持多种客户端: Java 、 .Net 、 PHP 、 Perl 、 Apache, uPortal 等; 4

CAS单点登陆配置

CAS服务端配置 1.准备环境 JDK1.6 apache-tomcat-6.0.14 cas-server-3.4.2 2.配置server 将cas-server war文件复制到webapps下,启动tomcat,以相同用户名或密登录成功。3.配置数据库访问方式 复制modules下面所有jar文件到cas-server的Web-inf/lib下,并复制class12.jar(oracle 数据库驱动)。 修改配置数据源,在deployerConfigContext.xml中添加数据源。 oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@localhost:1521:orcl aip aip 修改登录验证方法,在deployerConfigContext.xml中注释原验证方式,改为数据库验证。重新启动,通过数据库验证用户成功. 三种验证方法: 相同用户名或密码 用select语句验证 指定表或字段

CAS实现单点登录(SSO)经典完整教程

CAS实现单点登录(SSO)经典完整教程 一、简介 1、cas是有耶鲁大学研发的单点登录服务器 2、本教材所用环境 ?Tomcat7.2 ?JDK6 ?CAS Service 版本 cas-server-3.4.8-release ?CAS Client版 本 cas-client-3.2.1-release 二、生成证书 证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。 中文官方网站:https://www.360docs.net/doc/8e3887338.html,/cn/ 1、用JDK自带的keytool生成证书 [plain]view plaincopy 1.命令:keytool -genkey -alias smalllove -keyalg RSA -keystore D:/keys/smallkey 此命令是生成一个证书,其中smalllove 是证书别名 此命令的执行如图所示:

其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,注意不要写IP。 2、导出证书 [plain]view plaincopy 1.命令: C:\>keytool -export -file d:/keys/small.crt -alias smalllove -keystore d:/keys/smallkey 如图: 密码为上步设置的密码。 3、把证书导入到客户端JDK中。

相关主题
相关文档
最新文档