ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:141.56KB ,
资源ID:10304955      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10304955.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CAS单点登录技术研究解读.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CAS单点登录技术研究解读.docx

1、CAS单点登录技术研究解读SSO单点登录技术研究报告 - 基于CAS框架的分析与技术研究目 录1 引言 41.1 摘要 41.2 范围 41.3 读者对象 41.4 关键词 42 技术背景 43 CAS单点登录简介(针对实践选择的技术) 53.1 技术快速使用说明 53.1.1 设置服务器域名 53.1.2 生成证书(这里采用JDK自带的工具keytool) 53.1.3 为客户端JVM导入证书 63.1.4 将证书应用到Web服务器Tomcat 73.1.5 部署CAS服务器 73.1.6 深入配制CAS服务器 73.1.7 配制CAS客户端 83.1.8 用到的jar包 83.1.9 CA

2、S深入研究 84 开发环境的配置 85 运行环境的配置 96 结束语 97 参考文献 91 引言1.1 摘要单点登录(Single sign on),简称SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个系统中,用户只需要登录一次就可以在各各相互信任的系统中进行切换。本文主要介绍它的简单部署以及源码分析,逻辑分析。官网:http:/www.jasig.org/cas1.2 范围单点登录的配置、登录方式、项目之间建立的信任关系。单点登录的客户端服务端处理逻辑,源码分析。1.3 读者对象技术组人员1.4 关键词CAS、SSO、单点登录2 技术背景 技术原理当用户第一次访问系统

3、时,因为还没有登录,所以会被引入到认证系统中进行登录,根据用户提供的身份信息,系统进行校验,如果通过效验则返回给用户一个Ticket认证凭据,用户再次访问别的系统时就会将此Ticket带上做为自己的认证凭据送到认证系统中进行效验,检查Ticket的合法性,如通过效验则不必登录直接进入第二个系统。 目前主要流行的产品列表AccessMatrix USO (by i-Sprint Innovations) Athens access and identity management Central Authentication Service (CAS) COMA CoSign Distribute

4、d Access Control System (DACS) Enterprise Sign On Engine Evidian Enterprise SSO Facebook connect FreeIPA Global Login System Imprivata OneSign (Enterprise single sign-on and strong authentication) JBoss SSO JOSSO (Open Source Single Sign-On Server) Kerberos myOneLogin (Secure single sign-on for the

5、cloud) OneLogin (single sign-on and user provisioning for the cloud) OpenAM (previously OpenSSO) OpenASelect Passlogix SAML Secure Network Communications Shibboleth Smart card Tiger OneConnect Ubuntu Single Sign On (OpenID-based single sign on service) Windows Live ID 在项目中做出的技术选择以及原因 选择的技术:CAS 原因:项目

6、开源、企业中用此技术的比较多、较稳定、网络参考资料较多。3 CAS单点登录简介(针对实践选择的技术)3.1 技术快速使用说明3.1.1 Http配置教程 1.首先是需要在CAS服务器配置是CAS服务器端支持http协议方式主要改进一下配置文件:ticketGrantingTicketCookieGenerator.xml 配置文件:html view plaincopyprint?1 将这个地方的配置改为下面的配置:html view plaincopyprint?6 warnCookieGenerator.xml 配置文件html view plaincopyprint?11 将这个地方的配

7、置改为下面的配置:html view plaincopyprint?16 deployerConfigContext.xml 配置文件:html view plaincopyprint?21 将这个地方的配置文件修改为下面的配置:html view plaincopyprint?24 完成这些地方的修改后,服务器端就支持了http协议的访问了 下面开始客户端的改动,客户端其实就是将client.jar包里面关于https协议的处理代码给屏蔽掉,已经重新打jar包出来了,直接就能使用。原理如下。看过CAS客户端的源码的都知道,在配置过滤器类中,都做了访问协议的判断 如下代码:html view

8、plaincopyprint?1 if (casServiceUrl != null) 2 if (! (casServiceUrl.startsWith(https:/)| (casServiceUrl.startsWith(http:/) ) 3 throw new ServletException(service URL must start with http:/ or https:/; its current value is + casServiceUrl + ); 4 5 所以首先我们要做的 是需要将casclient.jar的源码找到,将上面类似的这种协议判断屏蔽掉。具体在一下

9、2个类里面:第一个是:CASFilter这个类里面中的init()方法中,https的判断屏蔽后如下:html view plaincopyprint?6 if (casGateway & Boolean.valueOf(casRenew).booleanValue() 7 throw new ServletException(gateway and renew cannot both be true in filter configuration); 8 9 if (casServerName != null & casServiceUrl != null) 10 throw new Ser

10、vletException(serverName and serviceUrl cannot both be set: choose one.); 11 12 if (casServerName = null & casServiceUrl = null) 13 throw new ServletException(one of serverName or serviceUrl must be set.); 14 15 /* if (casServiceUrl != null) 16 if (! (casServiceUrl.startsWith(https:/)| (casServiceUr

11、l.startsWith(http:/) ) 17 throw new ServletException(service URL must start with http:/ or https:/; its current value is + casServiceUrl + ); 18 19 */ 20 21 if (casValidate = null) 22 throw new ServletException(validateUrl parameter must be set.); 23 24 /* if (! casValidate.startsWith(https:/) 25 th

12、row new ServletException(validateUrl must start with https:/, its current value is + casValidate + ); 26 27 */ 28 if (casAuthorizedProxy != null) 29 30 / parse and remember authorized proxies 31 StringTokenizer casProxies = 32 new StringTokenizer(casAuthorizedProxy); 33 while (casProxies.hasMoreToke

13、ns() 34 String anAuthorizedProxy = casProxies.nextToken(); 35 /* if (!anAuthorizedProxy.startsWith(https:/) 36 throw new ServletException(CASFilter initialization parameter for authorized proxies + 37 must be a whitespace delimited list of authorized proxies. + 38 Authorized proxies must be secure (

14、https) addresses. This one wasnt: + anAuthorizedProxy + ); 39 */ 40 this.authorizedProxies.add(anAuthorizedProxy); 41 42 第二个是:edu.yale.its.tp.cas.util.SecureURL这个类里面的retrieve方法中,屏蔽后如下:html view plaincopyprint?43 URL u = new URL(url); 44 /*if (!u.getProtocol().equals(https) 45 / IOException may not b

15、e the best exception we could throw here 46 / since the problem is with the URL argument we were passed, not 47 / IO. -awp9 48 log.error(retrieve( + url + ) on an illegal URL since protocol was not https.); 49 throw new IOException(only https URLs are valid for this method); 50 */ 51 52 URLConnectio

16、n uc = u.openConnection(); 重新打包后将casclient.jar更新到我们的程序第三方lib包中。 做完这些,就能达到能让服务器利用http协议进行登录cas服务端的效果。3.1.2 Https配置教程3.1.2.1 设置服务器域名 修改hosts文件在SERVER端C:Windows下搜索hosts文件,并在最后边一行加上如下内容:127.0.0.1 castest #Server 同样在CLIENT端也应有相对应的设置:SERVER IP castest #client (这里的SERVER IP是指服务端的IP)3.1.2.2 生成证书(这里采用JDK自带的工

17、具keytool) 简述:CAS单点登录系统中服务端与客户端进行安全通信的保障就是证书钥匙,这里的证书是采用JDK所自带的keytool生成的证书,如果是在正式环境中部署应去供应商处购买。 官网: 3.1.2.3 生成服务器端证书文件Keytool genkey alias server keyalg RSA keystore serverkey 注:这里的名字与姓氏最好填写域名,严禁使用IP,此处密码采用的是changeit与JDK默认密码一致,可随意设置(不要忘记)。3.1.2.4 导出服务端证书Keytool export file server.crt alias server key

18、store serverkey注:此处密码与上方设置密码相同3.1.2.5 为客户端JVM导入证书将生成的server.crt文件分发给各个客户端后,使用CMD命令为JVM导入证书。Keytool import keystore %java_home% jrelibcacerts file server.crt alias server视个人情况而定,网上好多帖子都说是jre下的cacerts而不是jdk/jre/cacerts,这主要是看tomcat用哪个jre,视个人情况而论。此所用到的是jdk中的jre也可以自己指定目录,创建完cacerts后再将其复至到jre/lib/security

19、/也可以。但这样会覆盖JDK原有的证书(不建议使用)至此基本环境已经配好。注:此部署是在客户机上导入,不需要在服务器中导入。3.1.2.6 将证书应用到Web服务器Tomcat启用Tomcat的https加密协议,至于为什么加密自己去GOOGLE一下。将Tomcat下的conf/server.xml里如下代码的注释去掉,并加入证书的路径和密码。OK,这样SSL就启用成功了,可以进入https:/castest:8443/ 查看一下是否启用成功注:此步客户端与服务端都需要配置,直接将服务器端生成的文件发给客户端使用即可, 此处所用到的serverkey是在服务端生成的证书文件,密码为自定义设置的

20、密码3.1.3 部署CAS服务器 CAS服务端下载: http:/www.jasig.org/cas/download 下载的包解压后,将cas-server-3.4.5modulescas-server-webapp-3.4.5.war复制到webapps目录下,重命名为cas.war 启动TOMCAT访问地址:https:/castest:8443/cas/login 输入admin/admin(用户名和密码相同即可)后即可登录,登录成功后的页面为:如果没有成功,请仔细检查上边的步骤3.1.4 深入配制CAS服务器上边的登录只是CAS默认的登录,在我们的系统应用中都是从数据库中获取的信息,

21、所以这里需要更改一下配置。 将deployerConfigContext.xml中的如下行注释掉: 加入代码,见附件1 将所用连接的数据库驱动和cas-server-support-jdbc-3.4.3.1.jar放入工程中的lib下 cas.properties 中使用哪种数据库就将相应驱动前边的#去掉3.1.5 配制CAS客户端 http配置使用cas-client-http.jar https配置使用cas-client-https.jar,地址:http:/www.ja-sig.org/downloads/cas-clients/,然后解压cas-client-3.2.0.zip,在m

22、odules文件夹中有需要的jar包,请根据自己的项目情况选择使用 设置web.xml的filter如下web-app xmlns= xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance version=2.5 xsi:schemaLocation= spring filter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 spring filter /* org.jasig.cas.client.session.SingleSignOutHttpSes

23、sionListener CAS Single Sign Out Filter org.jasig.cas.client.session.SingleSignOutFilter CAS Filter edu.yale.its.tp.cas.client.filter.CASFilter edu.yale.its.tp.cas.client.filter.loginUrl http:/192.168.168.141:8080/casServer/login edu.yale.its.tp.cas.client.filter.validateUrl http:/192.168.168.141:8080/casServer/serviceValidate

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1