
《WindowsAD域扩展单点登录技术研究与实现设计说明书》由会员分享,可在线阅读,更多相关《WindowsAD域扩展单点登录技术研究与实现设计说明书(34页珍藏版)》请在文档大全上搜索。
1、 . 河 北 工 业 大 学毕 业 设 计说 明 书作 者:建胜 学 号:112422学 院:计算机科学与软件学院 系(专业):计算机科学与技术题 目: 基于Windows AD域扩展单点登录技术研究与实现指导者:田红丽 教授 (姓 名) (专业技术职务)评阅者: (姓 名) (专业技术职务)2015年 6月 4 日29 / 34毕业设计(论文)中文摘要基于Windows AD域扩展单点登录技术研究与实现摘要: 随着信息技术的迅猛发展,同时各种管理制度不断完善,使得公司或者其他组织机构的应用系统的种类越来越多。每个应用系统都有自己的认证登录页面,用户登录系统时,都要对其身份进行认证,繁多的登录
2、系统占用了用户的大量登录时间,且用户容易忘记或者记混这些系统的密码,如果将系统的密码设置成同一个又会存在安全隐患,所以解决这些系统的登录问题就是非常必要的而且具有较好的市场需求。基于Windows AD域扩展单点登录技术的研究与实现就是实现了多个应用系统的单点登录,即登录一次就可以访问所有整合过的资源。它是基于微软的Windows AD域进行身份认证,使认证更加的安全可靠,在此基础上实现单点登录,单点登录采用Yale大学研发的CAS系统为基础,在此基础上进行Windows AD域和CAS的整合,实现了单点登录系统。关键词: 单点登录 Windows AD域 身份认证 CAS毕业设计(论文)外文
3、摘要Title The Research and Implementation of Windows AD domain extension based login carteAbstractWith the rapid development of information technology, as well as various management systems continue to improve, making more and more types of companies or other organizations of the application system. E
4、ach application has its own authentication login page when a user login system, must authenticate their identity, many user login system takes up a lot of login time, and the user is easy to forget or remember passwords mix of these systems, if the password system will be set to the same security ri
5、sks, so log on problem solving of these systems is a very necessary and has good market demand.Based on Windows AD domain extension and single sign-on technology is to achieve a number of applications to achieve single sign-on systems that log in once to access all integrated over resources. It is b
6、ased on Microsoft's Windows AD domain authentication, so authentication is more secure, reliable, single sign-on this basis, single sign-on using the CAS system developed by Yale University as the basis for Windows AD domain and on this basis CAS integration, to achieve single sign-on system.Key
7、words:Single sign-on Windows AD domain authentication CAS目 录1 引言11.1 论文的选题背景11.2 论文研究的意义11.3 论文的容安排22 相关技术简介与其研究意义32.1 身份认证32.2 Windows AD域身份认证32.3 单点登录42.4 基于CAS单点登录模型93 基于Windows AD域扩展单点登录技术设计与分析123.1 CAS私有域登录框架123.2 CAS私有域票据133.3 CASSSOServlet类143.4 Filter类153.5 CAS私有域票据服务接口163.6生成票据接口-requiredTi
8、cket173.7兑换票据接口-exchangeTicket183.8票据接口里其他功能184 主要单点登录系统典型场景分析204.1 域终端访问Portal204.2 非域终端访问Portal224.3 域终端访问资源234.4 非域终端访问资源255 基于Windows AD域扩展单点登录技术实施文档275.1 环境需要275.2环境说明275.3环境搭建275.4文件部署285.5问题解析29结论30参考文献31致321引言Microsoft Active Directory 服务是Windows 平台的核心组件,是企业基础架构的根本,所有的高级服务都会向活动目录整合,以利用其统一的身份
9、验证、安全管理以与资源公用。本毕设课题着重研究如何在Windows AD域身份验证基础上扩展支持第三方单点登录协议,实现在AD域终端以与非域终端下基于AD域身份验证后单点登录到基于第三方单点登录协议整合的业务系统。1.1 论文的选题背景随着计算机的迅猛发展,应用软件和系统的种类越来越多,这些软件的应用方便了人们的日常管理工作,使人们的工作越来越趋于科学化、简单化、方便化。但是这些软件系统都有相互独立的,所以在方便人们管理和工作的同时也产生了繁琐的登录过程和繁多的密码。如果每个登录系统的密码都采用一样的又会产生安全隐患,而繁多的密码又不利于记忆而且出错的概率会随着系统的增加而增加。 理想状况下,
10、是所有的应用系统都采用统一的身份认证体系,但是市场上的应用系统都具有自己的认证体系,无法进行统一的身份认证。系统在方便人们的日常工作的同时也给用户带来了不可避免的麻烦,使得登录系统成为用户最为苦恼的一件事情。在此背景下,适用于企业的单点登录系统是迫在眉睫的。1.2 论文研究的意义Microsoft Active Directory 利用统一的身份认证、安全管理机制,使认证更加的安全可靠,通过Yale大学研究的CAS系统实现单点登录,单点登录系统能够实现各个系统身份的统一认证,将繁琐的登录过程简化掉,只需要通过一次登录就可以访问所有的资源。减少了用户的登录时间,也不需要记录繁琐的密码和账号,同时
11、也减轻了管理员的工作,不用频繁的帮助用户找回密码,同时提高了软件使用效率。1.3 论文的容安排本论文一共分为六章。希望以下的简单介绍可以帮助读者说明本论文所完成的容。第一章引言部分,主要讨论了基基于Windows AD域扩展单点登录技术的研究与实现背景、研究意义以与论文的容安排。第二章 相关技术简介与其研究意义。第三章 基于Windows AD域扩展单点登录技术设计与分析。第四章主要单点登录系统典型场景分析。第五章 总结。2 相关技术简介与其研究意义2.1 身份认证身份认证是指在计算机系统中确认操作者身份的过程,从而确定操作者是否对该资源具有访问操作的权限,进而使计算机网络环境更加的安全可靠,
12、更加可以防止该资源被别人冒充访问,对该资源造成威胁。现在通常使用的身份认证有以下常见的几种形式:口令认证、智能卡认证、动态口令认证、生物识别等方法。口令认证:是指用户通过静态的,自己提前设置好的口令进行登录访问。但是很多用户设置时,密码采用自己的生日,字母等一些具有特色的组合作为自己的密码,或者有的人防止自己忘记密码,将密码记录在某些地方,这些都可能造成安全隐患。而且密码密码在传输的过程中也容易被别人截获,存在一定的安全隐患。智能卡认证:是一种相对安全的认证模式,智能卡部芯片是不可轻易复制的,它是由合法者携带的一种安全的硬件设施。它是基于“what you have”的认证模式,它对于口令认证
13、来说是一种相对安全的认证模式。动态口令认证:是一种动态获取登录密码方式的认证方法,比如比较常见的有短信认证,通过手机绑定,获取动态验证码的方式来完成身份认证,进行登录。还有通过专门的硬件设备,进行动态改变登录密码,常见的有六十秒改变一次登录密码来保护资源不被非法者访问,这也是一种基于“what you have”的认证方式。生物识别:是指通过自身所特有的生物特征进行登录访问,现在比较常见的有:指纹登录,视网膜登录,语音登录,脸型,虹膜等一系列生物特征进行登录。因为视网膜等生物特征是比较独特的,是不可仿造的,所以能够安全的保护用户的隐私,使其不被非法者所冒充。这是一种基于“what you ar
14、e”的认证模式。2.2 Windows AD域身份认证Windows AD域是指(Active Directory)活动目录,遵循ldap协议,动态的建立整个域模式网络中的对象的数据库或索引。AD域和工作组不同,它是具有严格的权限控制的,没有登录到域中的用户是无法对其中资源进行访问控制的。“域”的真正含义指的是服务器控制网络上的计算机能否加入的计算机组合。一提到组合,势必需要严格的控制。所以实行严格的管理对网络安全是非常必要的。2.3 单点登录单点登录的英文名字为single sign on,单点登录就是用户只需要登录一次,就可以访问不同的系统或者资源,它是用户的一个认证过程,单点登录的实现简
15、化了人们日常工作的流程,使用户在登录每个操作系统时,不需要都输入自己的用户名和密码,提高了人们的日常工作效率。SSO有一个形象的解释:“单点登录,全网漫游”。2.3.1单点登录的背景就目前市场而言,单点登录的产品也有很多种,大体分为两大类:一种是商用的单点登录产品,另一种是开源的单点登录产品。商用的单点登录产品大概又分为:专门的商业登录软件和门户产品供应商自己的单点登录产品。专门的商业登录软件包括:Netgrity的Siteminder,已经被CA收购,Novell 公司的iChain,RSA公司的ClearTrust等。门户产品供应商自己的单点登录产品包括:BEA的WLES,IBM 的Tiv
16、oli Access Manager,Sun 公司的identity Server,Oracle公司的OID等。商用的单点登录软件一般都是针对那些对单点登录要求比较高,比较大型的软件公司,它不仅价格昂贵,还需要特定的环境,需要在软件中增加代理模块来完善单点登录。 开源的单点登录产品主要包括:OpenSSO,JOSSO,CAS等。OpenSSO基于Sun Java System Access Manager,是Sun公司支持的一个开源的SSO项目。OpenSSO体系结构设计合理,功能比较强大。然而缺点是客户端支持不够广泛,似乎只是对基于J2EE的应用支持的比较好。JOSSO是另一个Java写的单
17、点登录产品,通常认为比OpenSSO更成熟一些。JOSSO支持的客户端包括Java,PHP和ASP。CAS是耶鲁大学开发的单点登录产品,也是我最后选定的单点登录产品。CAS的优点很多,例如设计理念先进、体系结构合理、配置简单、客户端支持广泛、技术成熟等等。 经过广泛分析和比较,最后我们选定CAS作为我们的单点登录产品。我们确信这是目前能够找到的最好的开源单点登录产品。2.3.2 单点登录原理单点登录(SSO)是使用身份验证的方法,允许授权用户可以访问所有相关的容,但独立的软件系统或应用程序不会被提示在重新登录,增加用户的工作效率,并允许用户访问多个服务或应用程序时只被认证一次。这并不意味着SS
18、O系统统一的账户信息的所有服务,应用程序和系统,而它隐藏的账户信息等多重成一个单一的用户需要登录。一旦用户登录,SSO系统生成的各种公认的认证信息应用程序和系统。 SSO不仅可以在联网中使用,还可以在外联网或因特网中使用。单点登录系统主要包括:单点登录服务器和单点登录客户端。服务器主要负责用户的身份认证和实现单点登录的功能。客户端通常和应用系统部署在一起,负责将用户的请求信息发送给单点登录服务器进行身份认证。单点登录的访问流程一般包括以下步骤:1、 单点登录系统客户端发送请求,请求访问应用系统所提供的资源和服务。2、 单点登录客户端将请求重定向回服务器。3、 服务器对请求用户进行身份认证4、
19、认证通过后,给请求用户随机产生一个Service Ticket,作为身份凭证。5、 单点登录服务器验证Service Ticket的合法性,如果合法,允许用户访问资源。6、 当认证用户合法后传输结果给客户端,客户端储存信息。7、 注销用户登录当用户未注销登录时,合法用户访问其他资源时候,不需要对该用户再次进行身份验证,即实现了单点登录。如图2-1:图2.1 复杂的SSO使用单组凭证可以通过两种方式来完成,即基于凭证和基于公钥如下:(1)基于凭证的SSO系统: 在这种SSO系统,用户提交的凭据到基于凭证的认证权威机构,在该认证中心检查其凭据数据库。如果用户凭据相匹配,则给用户返回一个凭证。当用户
20、想要访问其支配的应用服务器时,同理携带之前的票据访问应用程序服务器。这个过程的成功依赖于服务系统都信任该认证机构。(2)在 环境下的基于凭证的SSO系统 基于凭证的SSO可通过在 的环境中使用的cookie来实现。一个cookie是一组由网络服务器提供给网络浏览器的信息,并存储在客户机上。用于身份验证的cookie可以被加密,使之更加安全可靠。该服务器可以再检测cookie,并给客户提供个性化的服务。 在网络环境中Kerberos系统提供基础建设固定的SSO,然而,它需要客户端的基础设施和配置。在支持 的环境,cookies可被用于构建SSO系统但并不需要多余的安装或必要的配置。 Kerber
21、os系统和Cookies功能SSO的最大系统区别是,前者使用远程过程调用以传输认证的票据,而后者则使用cookies标记。(3) 基于PKI的单点登录系统 在基于PKI的SSO,服务器/资源和用户验证对方时,使用其各自的密钥对。用户可以通过服务器解密任何验证服务器消息,他们发送的信息是由服务器的公钥加密。同样的方式,服务器可以通过他认证过的用户向它们发送消息,该消息是由所述加密解密用户的公共密钥进行加密的。作为私钥的真正拥有者只能解密,相互认证如服务器验证用户身份。用户和服务器的认证机构可以是不同的,如果他们是不同的,该认证机构之间必须是相互信任的。2.3.3单点登录协议在本节中,我们将讨论的
22、简单和复杂的SSO架构使用不同的协议。2.3.3.1 Kerberos身份验证协议 Kerberos是一个经典的实现基于令牌的分布式认证协议。该整个过程分为三个过程和四个实体。四个实体是:1)客户端 - 想要访问的资源2)认证服务器(AS) - 可以验证客户端和资源3)票据授权服务器(TGS) - 生成票据访问资源; 4)应用服务器(S) - 访问请求的资源。三个过程是:1)认证请求和响应:在客户端提交认证请求,并将请求提交给认证服务器进行认证响应 2)票证授予的请求和响应通信:用户进行身份认证后,提交给票据授权服务器,产生用户所对应的票据,并将其返回给应用程序3)应用程序的请求和响应:在客户
23、端使用它从票据授权服务器(TGS)得到票据与应用服务器(S)沟通,在需要的凭据时,第2次和第3次的过程是不断重复后,客户端有权访问其他资源。2.3.3.2安全断言标记语言 安全断言标记语言(SAML)是一种基于XML的开放式标准,交换安全域,即身份提供者和服务之间的认证和授权的数据供应商使用SAML,在线服务提供商的联系人的在线身份提供哪些验证谁试图访问安全容的用户。 SAML没有规定如何验证用户;而它定义了一种方法,一旦用户是交换认证和授权数据验证。 SAML是不是一系列基于XML的消息的所谓的断言,详细说明而已用户是否被认证(认证断言),有什么样的权利,角色和访问基于(属性断言),他们已经
24、和他们如何使用的数据和资源(授权断言)对这些权利和角色。它使用 ,SMTP,FTP和SOAP,以与其他协议和技术传输这些断言。2.3.3.3 OpenID登录 OpenID是一个分散的身份验证协议。的OpenID包括三个主要实体:1)在OpenID的标识符:文本或电子地址唯一标识用户的字符串; 2)OpenID依赖方(RP):Web应用程序或服务提供商想要证明最终用户拥有该标识;3)OpenID提供者(OP):一个中央服务器的问题,商店和管理用户的OpenID的标识符。依托双方依靠此提供一个论断,即最终用户拥有该标识。主要有四种方法的OpenID协议中使用:1.Discovery,2
25、.Authentication,3.Association,4验证。发现:最终用户凭用户提供的标识符到依赖方发起认证通过他们的浏览器。 RP就可以执行发现(发现),并建立了OP端点URL其中所使用的用户进行身份验证。认证:RP最终用户的浏览器重定向到一个OpenID认证请求OP。 OP建立了端用户是否被授权。 OP重定向最终用户的浏览器返回到向RP要么是断言,认证认可,或一条消息,验证失败。关联关系:使用Diffie-Hellman密钥的RP和OP建立共享秘密的关联建立交换。 OP使用该协会签署后续的消息和RP验证这些消息;此不再需要后续的直接要求每个认证后,验证签名请求/响应。验证:RP验证
26、从OP包括检查返回URL接收到的信息,验证发现的信息,检查随机数,并通过使用所述共享密钥验证所述签名在协会或通过发送一个直接请求OP建立。2.3.4单点登录的优点在当前的数字世界中,用户可能需要访问多个系统来开展他们的一天活动。系统的数量在不断地增加,每个用户需要记忆的凭证数量也随之增加并由此带来的可能失去或忘记他们的密码事件也增加了。单点登录,可以用来解决涉与用于不同应用程序的多个凭证的许多问题。单点登录访问主要认证中心可以让用户访问所有可用的其他资源。 SSO帮助用户解决记住多个密码的烦恼,也提高了用户和开发人员的生产力,减少用户花费在输入各种密码的登录时间。 从不同的角度和角色进行分析单
27、点登录的优点:用户角度:提高了用户的工作效率,告别了繁琐的登录过程,减少了登录时间,更加避免了大量密码需要记住的烦恼,减少了因为密码一样或者在笔记本中记录密码而发生泄漏的危险。管理员角度:简化了管理员日常的管理工作,管理员不需要频繁的帮助用户找回密码,并且有利于管理员进行管理,在有人员变动时,不需要一个个应用系统的操作,能够实现快速的整合添加应用系统,委派访问权限时候也减少了管理员的工作量。2.4 基于CAS单点登录模型2.4.1 CAS背景与特点 CAS( Central Authentication Service )是Yale发起的一个项目,它为了实现一种企业级的WE
28、B单点登录项目。这个项目是开源的,提供多种协议解决方案,支持多种认证机构,比如 Active Directory、LDAP、JDBC、JAAS等 。它的安全策略采用票据的方式,支持授权,可以决定哪些服务可以请求验证票据服务,它提高了单点登录的可用性,同时支持多种客户端,如Java、PHP、Apache、Perl、.Net等。2.4.2 CAS结构体系 CAS包括两部分组成:一部分是CAS Client,它和应用系统客户端部署在一起,用户登录时,将用户重定向到服务器,并将用户名和密码传递给服务器进行验证。另一部分是CAS Server,它负责将客户端传递过来的参数进行认证,认证成功后返
29、回票据给客户端,并完成票据的兑换等工作。2.4.3 CAS原理基本原理当用户第一次通过web浏览器访问资源时候,CAS客户端和应用系统客户端部署在一起,会直接跳转至CAS Client端,进行对用户身份的验证,用户在CAS Client端需要提交用户名和密码,客户端重定向回CAS Server,将用户的用户名和密码提交给CAS Server,同时将用户需要访问的资源地址发送给CAS Server,CAS 进行验证用户身份,如果用户是合法身份,将会给用户产生一个Ticket,作为用户的身份标识,CAS Server并将生成的Ticket和Service返回给CAS客户端,客户端进行票据的验证,C
30、AS Server通过票据获取到用户的用户名,用户名合法后,允许用户访问应用系统或者资源,CAS认证结束。CAS的基本原理图2.2如下: 图2.22.4.4 CAS 实现单点登录原理 当用户第一次通过浏览器访问资源的时候,会获取客户端的Session,如果客户端存在Session,证明会话没有注销直接访问到资源,但是我们是首次登录,所以在客户端中检测不到session,则重新定向会浏览器,然后获取浏览器中的cookie,将cookie中的TGT发送给CAS服务端进行请求认证,如果已经登录则返回ST给客户端,然后客户端用这个ST兑换用户名登录资源,但是由于是首次登录,所以无TGT或TGT错误,返
31、回登录页面,输入用户名密码后,重定向回CAS服务端进行身份认证,认证成功后,返回ST并重定向回浏览器,浏览器重定向回CAS客户端,请求认证ST,确认ST已经登录后,在CAS客户端创建Session,登陆成功后重定向回请求地址,访问资源,如果不注销登录,当下次访问资源时候,先去CAS客户端获取Session,获取到直接登录,不用再次输入用户名密码,如果为获取到,去浏览器中cookie中获取票据,获取到后直接兑换用户名登录。图2.33 基于Windows AD域扩展单点登录技术设计与分析上面我们主要介绍了CAS原理和单点登录机制以与Windows AD域的登录原理。这次我们将CAS单点登录系统和W
32、indows AD域身份认证整合,即身份认证部分交给Windows AD域进行认证,而单点登录则由CAS实现,采取这种设计方案的原因,现在很多公司都在使用Windows AD域进行人员管理,而CAS是支持和Windows AD域整合的,而且Windows AD域认证方式更加的安全可靠,基于以上几点我们采用基于Windows AD域扩展单点登录技术的实现。3.1 CAS私有域登录框架 我们将AD域和CAS相结合的方式实现单点登录,而实现的媒介是Portal,它起到认证和AD域整合的作用,AD域进行身份认证,当用户访问资源或者Portal时候,如果没有进行身份认证,即非域终端访问时候,会自动弹出A
33、D域认证框进行身份认证,而如果客户端进行身份认证后,即域终端访问资源或者Portal时候,无需再进行身份认证,此处实现的是AD域单点登录。身份认证后将单点登录交给我们模拟CAS认证的服务中心DTSSO进行单点登录,单点登录主要涉与到申请票据和兑换票据的过程,即用户身份认证后,访问资源的时候会去DTSSO申请票据,DTSSO将票据颁发给受信任的用户,然后用户携带票据去访问资源时候,需要找DTSSO进行票据兑换,去进行用户名验证,如果验证成功则允许用户访问资源。图3.1DTSSO票据服务:1.申请票据 2.兑换票据DTSSOServlet:调用申请票据的webservice接口,申请票据Filte
34、r:调用兑换票据的webservice接口,兑换票据3.2 CAS私有域票据 CAS私有域票据是CAS单点登录实现的重要组成部分,票据的基本信息包括:ID,userADnameID,expireTime,exchangeTimes,ticketGenerateTime等。ID作为票据的唯一标识为了区分票据的身份,userADnameID是AD域账号的唯一标识,用来作为身份验证的信息,而票据的产生是具有有效期限的,一般设置为30秒,因为我们设置了票据的有效时间所以我们为了能够计算票据的有效时间,我们必须用一个关键词作为票据的产生时间,即ticketGenerateTime,而票据产生后,验证身份
35、时候需要兑换票据,即exchangeTimes,一般设置兑换的次数为一次。这些关键词组成了票据。票据基本信息(TicketValue)表3-1:NameValueinstructionbytetypeIDDTSSOID票据唯一标识7StringuserADnameIDUSERADNAMEIDAD账号唯一标识12StringexpireTime30s票据时效3StringexchangeTimes1票据兑换次数1StringticketGenerateTime2014-12-18 22:11:11票据产生时间18String表3-1备注:考虑到性能问题,不建议采用签名技术以与票据目的地验证。3.
36、3 CASSSOServlet类3.3.1有语言就有信息,尤其是中文,暗含的意思更是多重多变。网络的快速发展,尤功能申请票据:用户从客户端将用户名和访问资源的url传递给服务器,服务器对该用户进行身份认证,如果没有通过认证,即用户名不存在,则重新跳转至认证页面进行身份认证,若身份认证通过,则采用soap协议调用DTSSO票据服务的webservice接口申请票据,然后将生成的票据返回给浏览器,作为登录资源的凭证。3.3.2 位置3.3.3 如何申请票据1. 从请求里获得portal对应的ASP页面里的域账号。2. 从请求里获得portal对应的ASP页面里的资源URL。3. 采用soap协议调
37、用DTSSO票据服务的webservice接口申请票据。4. 返回票据给IE洌览器重定向至业务1、2、3。3.3.4 票据申请流程示意图图3.23.4 Filter类3.4.1功能兑换票据:从IE浏览器中获取到之前生成的票据,如果未获取到票据,则重新跳转回用户登录界面进行重新登录,如果获取到票据,则采用soap协议调用DTSSO票据服务的webservice接口兑换票据,返回用户名,兑换完用户名后重新跳转回需要访问的资源。3.4.2 位置3.4.3如何兑换票据1. 从请求里获得IE浏览器返回的ticket。2. 采用soap协议调用DTSSO票据服务的webservice接口兑换票据,返回用户
38、名3. Filter流程结束返回资源。3.4.4 票据兑换流程示意图图3.33.4.5Filter其他功能缓存域账号说明:将兑换完成返回资源的域账号缓存在cookie里。1. cookiename:userADname2. cookievalue:DTAdministrator3. path:/ 可以跨域访问4. Domain:DT 5. EXPIRES:到期时间6. 设置cookie失效时间:为60s.3.5 CAS私有域票据服务接口技术框架示意图: 图3.43.6生成票据接口-requiredTicket本接口是提供业务资源向门户系统请求票据时,生成票据的接口。3.6.1 参数说明user
39、ADname=域用户名<soapenv:Envelope xmlns:soapenv="schemas.xmlsoap.org/soap/envelope/" xmlns:tic="ticket."><soapenv:Header/><soapenv:Body><tic:CreateTicket><userADname>DTAdministrator</userADname></tic:CreateTicket></soapenv:Body></soap
40、env:Envelope>3.6.2 返回结果<soap:Envelope xmlns:soap="schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:CreateTicketResponse xmlns:ns2="ticket."><return>CHSJAJYEEDSSASSDKJFLD=</return></ns2:CreateTicketResponse></soap:Body></soap:Enve
41、lope>3.7兑换票据接口-exchangeTicket本接口是提供业务资源向门户系统兑换票据时,返回用户名的接口。3.7.1 参数说明ticket=票据类(Base64编码)<soapenv:Envelope xmlns:soapenv="schemas.xmlsoap.org/soap/envelope/" xmlns:tic="ticket."><soapenv:Header/><soapenv:Body><tic:obtainUserByTicket><ticket>CHSJAJ
42、YEEDSSASSDKJFLD=</ticket></tic:obtainUserByTicket></soapenv:Body></soapenv:Envelope>3.7.2 返回结果<soap:Envelopexmlns:soap="schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:obtainUserByTicketResponse xmlns:ns2="ticket."><return>Y2hlb
43、mppZQ=</return></ns2:obtainUserByTicketResponse></soap:Body></soap:Envelope>3.8票据接口里其他功能3.8.1 缓存票据说明:1.票据唯一标识和TicketValue类缓存map一一映射。 2.域账号唯一标识和userADname缓存map一一映射。 3.TicketValue类和域账号唯一标识:类和属性关系。nameValuecontainerDTSSOIDTicketValuemapUSERADNAMEIDuserADnamemap表3-23.8.2 清除票据1. 兑
44、换票据完成后,无论兑换是否成功,都要清除票据2. 票据失效后,校验票据时效,超过时效时间,清除票据。(这里设置票据时效为30s)4 主要单点登录系统典型场景分析4.1 域终端访问Portal4.1.1 场景示意图图4.1当用户第一次通过浏览器访问Portal的时候,浏览器会发出请求向私有域获取票据,因为此用户为域终端用户,所以不需要进行身份认证,直接为该用户生成票据,票据生成后,用户携带票据去私有域进行用户名兑换,兑换用户名成功后可以访问资源,并自动生成一个与之对应的cookie,下次访问时候,如果cookie未失效不需要进行身份验证,直接访问资源。4.1.2 场景说明1. ADAuth:1)
45、通过域控服务器上对应的用户名和口令登录 2)通过针对域控颁发的域控证书和普通AD域用户登陆证书登录2. ADSSO:域单点登录至Portal,基于Kerberos实现IIS容器的整合3. DTSSO:Portal单点登录至Tomcat业务:基于私有票据协议整合4.2 非域终端访问Portal4.2.1场景示意图图4.2当用户第一次通过浏览器访问Portal的时候,浏览器会获取缓存的cookie,如果未获取到用户名,继续去查看票据,如果存在票据则用票据去兑换用户名,如果不存在票据,将身份信息和需要访问的资源地址发送给私有域身份认证系统进行身份认证,认证通过后,生成票据,将票据返回给浏览器,用户携
46、带票据去私有域进行用户名兑换,兑换用户名成功后可以访问资源,并自动生成一个与之对应的cookie,下次访问时候,如果cookie未失效不需要进行身份验证。4.2.2 场景说明步骤:1. Local Auth:通过工作组PC对应的用户名和口令登录2. ADAuth : AD身份认证至Portal:基于IE浏览器Intranet 集成Windows身份验证,校验域控服务器上的AD用户名和口令登录3. DTSSO : Portal单点登录至Tomcat业务:基于私有票据协议整合4.3 域终端访问资源4.3.1 场景示意图当用户第一次通过浏览器访问资源的时候,浏览器会重定向回Portal,Portal
47、发出请求向私有域获取票据,因为此用户为域终端用户,所以不需要进行身份认证,直接为该用户生成票据,票据生成后,用户携带票据去私有域进行用户名兑换,兑换用户名成功后可以访问资源,并自动生成一个与之对应的cookie,下次访问时候,如果cookie未失效不需要进行身份验证,直接访问资源。当用户第一次通过浏览器访问资源的时候,浏览器会重定向回Portal,Portal发出请求向私有域获取票据,因为此用户为域终端用户,所以不需要进行身份认证,直接为该用户生成票据,票据生成后,用户携带票据去私有域进行用户名兑换,兑换用户名成功后可以访问资源,并自动生成一个与之对应的cookie,下次访问时候,如果cook
48、ie未失效不需要进行身份验证,直接访问资源。图4.34.3.2 场景说明步骤:1. Local Auth:通过工作组PC对应的用户名和口令登录2. ADAuth : 访问业务重定向至Portal:域认证至Portal:基于IE浏览器Intranet 集成Windows身份验证,校验域控服务器上的AD用户名和口令登录3. DTSSO : Portal单点登录至Tomcat业务:基于私有票据协议整合4.4 非域终端访问资源4.4.1 场景示意图当用户第一次通过浏览器访问资源的时候,浏览器会获取缓存的cookie,如果未获取到用户名,继续去查看票据,如果存在票据则用票据去兑换用户名,如果不存在票据,
49、浏览器会将其重新定向回Portal,将身份信息和需要访问的资源地址发送给私有域身份认证系统进行身份认证,认证通过后,生成票据,将票据返回给浏览器,用户携带票据去私有域进行用户名兑换,兑换用户名成功后可以访问资源,并自动生成一个与之对应的cookie,下次访问时候,如果cookie未失效不需要进行身份验证。4.4.2 场景说明步骤:1. 登录域终端:1)通过域控服务器上对应的用户名和口令登录2)通过针对域控颁发的域控证书和普通AD域用户登陆证书登录2. ADSSO : 访问业务底层重定向至Portal:基于Kerberos实现IIS容器的整合3. DTSSO : Portal单点登录至Tomca
50、t业务:基于私有票据协议整合5 基于Windows AD域扩展单点登录技术实施5.1 环境需要1. 一台域控服务器(windows 2003)2. 一台域成员服务器(windows 2003)3. 一台工作组电脑(windows 2003)5.2环境说明1. 域控服务器:1)需要给域成员服务器分配一个域用户 2)需要给工作组服务器分配一个域2. 域成员服务器:需要搭建IIS服务器、JDK环境、Tomcat服务IIS服务portal:index.asp和login.aspTomcat服务:DTSSO和DTSSOTicketService服务3. 工作组服务器:需要搭建JDK环境、Tomcat服务
51、Tomcat服务:TomcatDemo1和TomcatDemo25.3环境搭建1. 搭建域控服务器和域成员服务器:参照文档:备注:域控服务器:zjs.域成员服务器:zhangjiansheng.zjs.2. 域成员服务器上:搭建IIS服务器:参照文档:备注:这里portal为虚拟目录,指向地址为:C:/portal设置端口号:803. 域成员服务器上:搭建JDK环境和安装Tomcat3.1从官网下载JDK和Tomcat 如下:备注:jdk版本:1.6.0.22版本以上Tomcat版本:官方标准版本:6.0以上3.2安装JDK.和Tomcat1.1 双击jdk,一直选择默认安装,直到完成为止参照
52、文档:1.2 配置JAVA环境变量:参照文档:1.3 安装Tomcat(绿色版)解压Tomcat压缩包,直接放入C:/下就可以。修改Tomcat下conf文件下server.xml的端口为80804. 工作组服务器:搭建JDK环境和安装Tomcat4.1从官网下载JDK和Tomcat 如下:备注:jdk版本:1.6.0.22版本以上Tomcat版本:官方标准版本:6.0以上4.2安装JDK.和Tomcat1.1 双击jdk,一直选择默认安装,直到完成为止参照文档:1.2 配置JAVA环境变量:参照文档:1.3 安装Tomcat(绿色版)解压Tomcat压缩包,直接放入C:/下就可以。修改Tom
53、cat下conf文件下server.xml的端口为80815. 域控服务器给工作组服务器分配域参照文档:备注:三台服务器必须相互能ping通。5.4文件部署1. Portal.ASP.net.zip文件解压后,取出index.asp和login.asp文件放入:域成员服务器的IIS服务器对应的C:/portal文件下。2. 在域成员服务器上打开tomcat文件夹,打开webapps文件夹将DTSSOServer.war包和DTSSOTicketService.war包放入。3. 在工作组电脑上打开tomcat文件夹,打开webapps文件夹将TomcatDemo1.war包和TomcatDem
54、o2.war包放入4. 启动IIS服务和tomcat服务器。5.5问题解析1. 三台机器相互ping不通,采用NAT解析改成Bridage解析网络2. Tomcat启动不起来,将批处理startup.bat文件打开修改java_home变量路径正确就可以正常启动起来。3. IIS服务启动不显示页面:搭建虚拟目录,右击属性,选择集成windows身份验证,同时禁用匿名登录。4. 访问tomcat业务显示路径不正确:端口配置一定要正确。IIS :80 DTSSOServer和DTSSOTicketService:8080 TomcatDemo1和TomcatDemo2:80815. 访问中报错:
55、由于域控为zjs. 域成员服务器为zhangjiansheng.zjs.(80和8080两个端口)工作组服务器为tomcatdemo.zjs.(8081端口)如果这三个域名已经改变,那么文件里也要相应的修改。第一:index.asp和login.asp文件打开后编辑,和之前对应的域名和端口第二:DTSSOServer.war包用好压解压后,将web.xml文件打开编辑修改相应的域名和端口。第三:TomcatDemo1.war和TomcatDemo2.war包用好压解压后,将web.xml文件打开编辑修改相应的域名和端口。第四:将portal后,将index.jsp和index1.jsp涉与到修
56、改域名和端口号的代码都要相应的修改一下。6.以上问题解决,访问成功,通过查看DT私有域单点登录场景文档以与查看源代码文档注释:detail文件。就可以理解该原理与流程。结 论近年来,随着科技的快速发展,应用系统的不断增多,人们越来越关注单点登录技术的研究和实现。这篇论文主要实现了:首先探讨了当前单点登录技术的研究现状,简单介绍了单点登录技术可能涉与到的相关技术和Windows AD域的相关技术研究和实现;其次,我们在Windows AD 域扩展单点登录技术的设计与实现进行了详细介绍。本论文还是有很多不妥之处,因为单点登录技术的安全性,可实施性,跨平台、多域访问等技术仍有深入研究的可能性。纵观国
57、外研究成果和单点登录技术的前景,我们可以将单点登录技术作为一个广泛又实用的应用来研究。这也值得我们对这个领域投入足够的时间精力进行深入研究,切实提出高效的单点登录系统。参 考 文 献1多域单点登录系统的设计与实现 润峰 邮电大学 2007年3月3日2基于CAS单点登录系统的研究与实现 袁先珍 轻工职业技术学院3基于CAS的Web单点登录系统的应用研究 季昉 海事大学 2010年6月4基于CAS的跨平台安全单点登录服务的设计与实现 雷传锐 华南理工大学 2012年115基于CAS协议的单点登录系统的研究 钟林栖 大学 2006年4月23日6基于JavaEE的单点登录的研究与开发 胡滨 电子科技大
58、学 2011年4月7Windows Server 2003中文版从入门到精通 江 电子工业 2008年01月8图书馆IIS+ASP的WEB服务器的安全配置 黄永康才智2008年08期 9浅析Java Web开发环境的搭建 王素苹 科技与经济 2012-06-1510ASP.NET动态网页设计吴逸贤 , 王晓慧2008年3月1日11Java Web开发详解 鑫 电子工业 2012年5月1日12疯狂Java讲义(第3版)刚 电子工业13Filter与Listener机制在Java Web编程中的应用 许生模; 余敏; 丁红英 2006月04月30日14基于Kerberos协议的Web单点登录模型研
59、究与设计 光情 暨南大学 2006年05月01日15基于SSO的公安网络统一身份认证系统的设计与实现 党伟 交通大学 2008-12-0116 基于门户的单点登录系统的设计与实现 余新华 华中科技大学 200717 吐哈油田单点登录系统开发 林传彬 中国信息届2012年4期 18 单点登录技术研究与应用 德兵电子技术208年9期19 基于智能卡的单点登录系统的研究与设计 于洁 电子科技大学 2013致 这篇论文的设计和实现是在田老师的细心指导下完成的,在毕业设计期间田老师严格的把控,时时的监督,在她的督促下我才得以完成自己的毕业设计,在毕业设计期间,田老师严格的把关,尽心尽力的教诲,让我受益良多,在以后的学习和工作中,我会将田老师教我的这种严谨治学的态度,积极主动的心态传承下去,作为自己做事的一种准则。其次,在这次毕业设计的研究与实现中,我要感给予我帮助的尘杰师父,是他为我规划毕业设计的时间点,不懂得问题帮我答疑解惑,还要感灵创团队的老师,他的严格把关使我进步很大。最后,我要感河工大教会了我这么多的知识,在这个严谨治学的大环境中,在一个个优秀老师的带领下,我才取得了今天的进步。能在工业大学中求学是我的荣幸,也是我的一种机遇。我会将母校“勤、慎、公、忠”的校训传承下去,现在我已在河工大学习为荣,相信以后工业大学会以我为荣。