手把手教你利用CAS实现单点登录

上传人:工**** 文档编号:562738647 上传时间:2023-06-19 格式:DOCX 页数:27 大小:281.68KB
返回 下载 相关 举报
手把手教你利用CAS实现单点登录_第1页
第1页 / 共27页
手把手教你利用CAS实现单点登录_第2页
第2页 / 共27页
手把手教你利用CAS实现单点登录_第3页
第3页 / 共27页
手把手教你利用CAS实现单点登录_第4页
第4页 / 共27页
手把手教你利用CAS实现单点登录_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《手把手教你利用CAS实现单点登录》由会员分享,可在线阅读,更多相关《手把手教你利用CAS实现单点登录(27页珍藏版)》请在金锄头文库上搜索。

1、综合业务系统单点登录(SSO )解决方案一. 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 认证中心和所有的

2、 Web 应用建立一种信任关系。二. CAS 的基本原理CAS(Central Authentication Service) 是 Yale 大学发起的构建 Web SSO 的 Java 开源项 目。1. CAS 术语解释SSO Single Sign On,单点登录TGTTicket Granting Ticket,用户身份认证凭证票据STService Ticket,服务许可凭证票据TGCTicket Granting Cookie,存放用户身份认证凭证票据的cookie2. CAS 的结构体系 CAS ServerCAS Server 负责完成对用户信息的认证,需要单独部署, CAS S

3、erver 会处理用户名 / 密 码等凭证 (Credentials) 。 CAS ClientCAS Client部署在客户端,当有对本地Web应用受保护资源的访问请求,并且需要对 请求方进行身份认证,重定向到 CAS Server 进行认证。3. CAS 协议基础协议HLip:/hel L&erviceC.S Serverl-l itf Wz 百吐 z w: H OSO4. Service lillcryiec,Tic kcl - 2345fr7&上图是一个基础的 CAS 协议, CAS Client 以 过滤器的方式保护 Web 应用的受保护 资源,过滤从客户端过来的每一个 Web 请求

4、,同时, 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),

5、Step 5 和 Step6 是 CAS Client 和 CAS Server 之间完成了一 个对用户的身份核实,用 Ticket 查到 Username ,认证通过。在该协议中,所有与CAS的交互均采用SSL协议,确保,ST和TGC的安全性。协议 工作过程中会有 2 次重定向的过程,但是 CAS Client 与 CAS Server 之间进行 Ticket 验证 的过程对于用户是透明的。4. CAS 如何实现 SSO当用户访问Helloservice2再次被重定向到CAS Server的时候,CAS Server会主动获到 这个 TGC cookie ,然后做下面的事情:1)如果 Use

6、r 的持有 TGC 且其还没失效,那么就走基础协议图的 Step4 ,达到了 SSO 的效果。2)如果 TGC 失效,那么用户还是要重新认证 ( 走基础协议图的 Step3) 。5. CAS 服务器接口uri说明/login凭证请求器,参数如下:service :客户端要访问的应用的标识;renew:如果设置这个参数,sso将被绕过;不支持renew和gateway同时 存在,若存在则忽略gateway;gateway:如果设置这个参数,CAS将不再问客户端要凭证。凭证接收器,参数如下:service:客户端要访问的应用的标识;CAS在认证成功后将它的url转发给 客户端;warn:在认证转发

7、给其他服务前,客户端必须给予提示。/logout单点退出,释放cas单点登录的session/proxyValidateSSO服务器验证票据的合法性三.准备工作1. 准备工具cas-server-3.521-release.ziphttp:/downloadsjasig.org/cas/cas-clie nt-3.2.1-release.ziphttp:/dow nl oadsjasig.org/cas-clie nts/2. 配置环境CAS服务器信息操作系统:WIN7JDK : jdk1.6.0_38Tomcat : apache-tomcat-7.0.52IP 地址:192.168.7.1

8、06计算机全名:xxjs-CAS客户端信息IP 地址:192.168.7.106Oracle数据库信息IP 地址:192.168915用户名:minxinperf 密码:minxinperf123四. HTTPS 验证配置CAS Server 是一套基于 Java 实现的服务,该服务以一个 Java Web Application 单独部署在与 servlet2.3 兼容的 Web 服务器上,另外,由于 Client 与 CAS Server 之间的交互采用 Https 协议,因此部署 CAS Server 的服务器还需要支持 SSL 协议。注:证书是单点登录认证系统中很重要的一把钥匙,客户端

9、于服务器的交互安全靠的就是证书; 本教程由于是演示所以就自己用JDK自带的keytool工具生成证书;如果以后真正在产品环境中 使用肯定要去证书提供机构去申请,证书认证一般都是由 VeriSign 认证1. 生成服务端密钥文件登录服务器打开一个CMD窗口(开始菜单- 运行输入cmd后回车)并切换到tomcat安 装目录下(如:c:tomcat-cas),执行如下命令:keytool -genkey -alias casserver -keypass demosso -keyalg RSA -keystore casserver.keystore -validity 365C : o mc a七

10、ca_s ke ytool cfenkey alias cassetuer l_执行后,可以看到tomcat安装目录下生成了一个casserver.keystore文件。如下图:c orLf lit logst emp webappsw ork1c azserver. keyst oreUCEHSENTjTICEkelrs-hdhsRllIBINQ:七泌说明:-alias指定别名为casserver; -keyalg指定RSA算法;-keypass指定私钥密码; -keystore指定密钥文件名称为casserver.keystore; -validity指定有效期为365天。另外提 示的输入

11、keystore密码应与-keypass指定的相同;您的名字与姓氏是CAS服务器使用的 域名(不能是IP,也不能是localhost),其它项随意 填。注意:服 务器上如果有多个JDK,请确认环境变量中的JDK路径为tomcat所使用的JDK, 如果不在环境变量中,也可切换到指定JDK的bin目录下执行命令;提示的输入keystore 密码应与-keypass必须与指定的相同,否则后面tomcat启动会报10异常(Cannot recover key)。2. 生成服务端证书根据以上生成的服务端的密钥文件可以导出服务端证书,执行以下命令:keytool -export -alias casser

12、ver -storepass demosso -file casserver.cer -keystore casserver.keystoreC.: Ktomeat-caskeyt&ol -expait -alias cassepuev -stovepass dEmosso -f ile casserue i*ccr -heystor-e casserver吞保存在文祥中的认证o m c a t c a.s执行后,可以看到tomcat安装目录下生成了一个casserver.cer文件。如下图:.c onf111.logst HfTlpw eliapp eWQrk JcaEEeiver. key

13、s toreUCEKSE1TOTICE说明:-alias指定别名为casserver; -storepass指定私钥为demosso; -file指定导出证书 的文件名为 casserver.cer; -keystore 指定之前生成的密钥文件的文件名。注意:-alias和-storepass必须为生成casserver.keystore密钥文件时所指定的别名和密码, 否则证书导出失败,报如下错误:C: oncat-cas keytoo 1 -export -alias casseruer -storepass deniossoS -f lie casscrv bf.cer -keystoPE

14、 cassepuer.keystorekeptoojaua. i_o. IOException: Keystape uas tampered with or passuoid 叩&$ incorrectC:Ktomcat-cas 3. 导入证书文件到 cacerts 密钥库文件导入以上生成的服务端的证书文件到一个cacerts密钥库文件,执行以下命令: keytool -import -trustcacerts -alias casserver-storepass demosso -file casserver.cer keystore cacertsC : t omca七一cas keyt oo 1 inpoi七 七尸“舌七巳上七舌 alias casseruei* storepass demosso -f i le c as se iu ei*.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号