Windows+AD域扩展单点登录技术研究与实现毕业设计说明书.docx
《Windows+AD域扩展单点登录技术研究与实现毕业设计说明书.docx》由会员分享,可在线阅读,更多相关《Windows+AD域扩展单点登录技术研究与实现毕业设计说明书.docx(33页珍藏版)》请在冰点文库上搜索。
Windows+AD域扩展单点登录技术研究与实现毕业设计说明书
毕业设计
说明书
题目:
基于WindowsAD域扩展单点登录技术
研究与实现
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它
毕业设计(论文)中文摘要
基于WindowsAD域扩展单点登录技术研究与实现
摘要:
随着信息技术的迅猛发展,同时各种管理制度不断完善,使得公司或者其他组织机构的应用系统的种类越来越多。
每个应用系统都有自己的认证登录页面,用户登录系统时,都要对其身份进行认证,繁多的登录系统占用了用户的大量登录时间,且用户容易忘记或者记混这些系统的密码,如果将系统的密码设置成同一个又会存在安全隐患,所以解决这些系统的登录问题就是非常必要的而且具有较好的市场需求。
基于WindowsAD域扩展单点登录技术的研究与实现就是实现了多个应用系统的单点登录,即登录一次就可以访问所有整合过的资源。
它是基于微软的WindowsAD域进行身份认证,使认证更加的安全可靠,在此基础上实现单点登录,单点登录采用Yale大学研发的CAS系统为基础,在此基础上进行WindowsAD域和CAS的整合,实现了单点登录系统。
关键词:
单点登录WindowsAD域身份认证CAS
毕业设计(论文)外文摘要
TitleTheResearchandImplementationofWindowsADdomainextensionbasedlogincarte
Abstract
Withtherapiddevelopmentofinformationtechnology,aswellasvariousmanagementsystemscontinuetoimprove,makingmoreandmoretypesofcompaniesorotherorganizationsoftheapplicationsystem.Eachapplicationhasitsownauthenticationloginpagewhenauserloginsystem,mustauthenticatetheiridentity,manyuserloginsystemtakesupalotoflogintime,andtheuseriseasytoforgetorrememberpasswordsmixofthesesystems,ifthepasswordsystemwillbesettothesamesecurityrisks,sologonproblemsolvingofthesesystemsisaverynecessaryandhasgoodmarketdemand.
BasedonWindowsADdomainextensionandsinglesign-ontechnologyistoachieveanumberofapplicationstoachievesinglesign-onsystemsthatloginoncetoaccessallintegratedoverresources.ItisbasedonMicrosoft'sWindowsADdomainauthentication,soauthenticationismoresecure,reliable,singlesign-onthisbasis,singlesign-onusingtheCASsystemdevelopedbyYaleUniversityasthebasisforWindowsADdomainandonthisbasisCASintegration,toachievesinglesign-onsystem.
Keywords:
Singlesign-onWindowsADdomainauthenticationCAS
1引言
MicrosoftActiveDirectory服务是Windows平台的核心组件,是企业基础架构的根本,所有的高级服务都会向活动目录整合,以利用其统一的身份验证、安全管理以及资源公用。
本毕设课题着重研究如何在WindowsAD域身份验证基础上扩展支持第三方单点登录协议,实现在AD域终端以及非域终端下基于AD域身份验证后单点登录到基于第三方单点登录协议整合的业务系统。
1.1论文的选题背景
随着计算机的迅猛发展,应用软件和系统的种类越来越多,这些软件的应用方便了人们的日常管理工作,使人们的工作越来越趋于科学化、简单化、方便化。
但是这些软件系统都有相互独立的,所以在方便人们管理和工作的同时也产生了繁琐的登录过程和繁多的密码。
如果每个登录系统的密码都采用相同的又会产生安全隐患,而繁多的密码又不利于记忆而且出错的概率会随着系统的增加而增加。
理想状况下,是所有的应用系统都采用统一的身份认证体系,但是市场上的应用系统都具有自己的认证体系,无法进行统一的身份认证。
系统在方便人们的日常工作的同时也给用户带来了不可避免的麻烦,使得登录系统成为用户最为苦恼的一件事情。
在此背景下,适用于企业的单点登录系统是迫在眉睫的。
1.2论文研究的意义
MicrosoftActiveDirectory利用统一的身份认证、安全管理机制,使认证更加的安全可靠,通过Yale大学研究的CAS系统实现单点登录,单点登录系统能够实现各个系统身份的统一认证,将繁琐的登录过程简化掉,只需要通过一次登录就可以访问所有的资源。
减少了用户的登录时间,也不需要记录繁琐的密码和账号,同时也减轻了管理员的工作,不用频繁的帮助用户找回密码,同时提高了软件使用效率。
1.3论文的内容安排
本论文一共分为六章。
希望以下的简单介绍可以帮助读者说明本论文所完成的内容。
第一章引言部分,主要讨论了基基于WindowsAD域扩展单点登录技术的研究与实现背景、研究意义以及论文的内容安排。
第二章相关技术简介及其研究意义。
第三章基于WindowsAD域扩展单点登录技术设计与分析。
第四章主要单点登录系统典型场景分析。
第五章总结。
2相关技术简介及其研究意义
2.1身份认证
身份认证是指在计算机系统中确认操作者身份的过程,从而确定操作者是否对该资源具有访问操作的权限,进而使计算机网络环境更加的安全可靠,更加可以防止该资源被别人冒充访问,对该资源造成威胁。
现在通常使用的身份认证有以下常见的几种形式:
口令认证、智能卡认证、动态口令认证、生物识别等方法。
口令认证:
是指用户通过静态的,自己提前设置好的口令进行登录访问。
但是很多用户设置时,密码采用自己的生日,姓名字母等一些具有特色的组合作为自己的密码,或者有的人防止自己忘记密码,将密码记录在某些地方,这些都可能造成安全隐患。
而且密码密码在传输的过程中也容易被别人截获,存在一定的安全隐患。
智能卡认证:
是一种相对安全的认证模式,智能卡内部芯片是不可轻易复制的,它是由合法者携带的一种安全的硬件设施。
它是基于“whatyouhave”的认证模式,它对于口令认证来说是一种相对安全的认证模式。
动态口令认证:
是一种动态获取登录密码方式的认证方法,比如比较常见的有短信认证,通过手机绑定,获取动态验证码的方式来完成身份认证,进行登录。
还有通过专门的硬件设备,进行动态改变登录密码,常见的有六十秒改变一次登录密码来保护资源不被非法者访问,这也是一种基于“whatyouhave”的认证方式。
生物识别:
是指通过自身所特有的生物特征进行登录访问,现在比较常见的有:
指纹登录,视网膜登录,语音登录,脸型,虹膜等一系列生物特征进行登录。
因为视网膜等生物特征是比较独特的,是不可仿造的,所以能够安全的保护用户的隐私,使其不被非法者所冒充。
这是一种基于“whatyouare”的认证模式。
2.2WindowsAD域身份认证
WindowsAD域是指(ActiveDirectory)活动目录,遵循ldap协议,动态的建立整个域模式网络中的对象的数据库或索引。
AD域和工作组不同,它是具有严格的权限控制的,没有登录到域中的用户是无法对其中资源进行访问控制的。
“域”的真正含义指的是服务器控制网络上的计算机能否加入的计算机组合。
一提到组合,势必需要严格的控制。
所以实行严格的管理对网络安全是非常必要的。
2.3单点登录
单点登录的英文名字为singlesignon,单点登录就是用户只需要登录一次,就可以访问不同的系统或者资源,它是用户的一个认证过程,单点登录的实现简化了人们日常工作的流程,使用户在登录每个操作系统时,不需要都输入自己的用户名和密码,提高了人们的日常工作效率。
SSO有一个形象的解释:
“单点登录,全网漫游”。
2.3.1单点登录的背景
就目前市场而言,单点登录的产品也有很多种,大体分为两大类:
一种是商用的单点登录产品,另一种是开源的单点登录产品。
商用的单点登录产品大概又分为:
专门的商业登录软件和门户产品供应商自己的单点登录产品。
专门的商业登录软件包括:
Netgrity的Siteminder,已经被CA收购,Novell公司的iChain,RSA公司的ClearTrust等。
门户产品供应商自己的单点登录产品包括:
BEA的WLES,IBM的TivoliAccessManager,Sun公司的identityServer,Oracle公司的OID等。
商用的单点登录软件一般都是针对那些对单点登录要求比较高,比较大型的软件公司,它不仅价格昂贵,还需要特定的环境,需要在软件中增加代理模块来完善单点登录。
开源的单点登录产品主要包括:
OpenSSO,JOSSO,CAS等。
OpenSSO基于SunJavaSystemAccessManager,是Sun公司支持的一个开源的SSO项目。
OpenSSO体系结构设计合理,功能比较强大。
然而缺点是客户端支持不够广泛,似乎只是对基于J2EE的应用支持的比较好。
JOSSO是另一个Java写的单点登录产品,通常认为比OpenSSO更成熟一些。
JOSSO支持的客户端包括Java,PHP和ASP。
CAS是耶鲁大学开发的单点登录产品,也是我最后选定的单点登录产品。
CAS的优点很多,例如设计理念先进、体系结构合理、配置简单、客户端支持广泛、技术成熟等等。
经过广泛分析和比较,最后我们选定CAS作为我们的单点登录产品。
我们确信这是目前能够找到的最好的开源单点登录产品。
2.3.2单点登录原理
单点登录(SSO)是使用身份验证的方法,允许授权用户可以访问所有相关的内容,但独立的软件系统或应用程序不会被提示在重新登录,增加用户的工作效率,并允许用户访问多个服务或应用程序时只被认证一次。
这并不意味着SSO系统统一的账户信息的所有服务,应用程序和系统,而它隐藏的账户信息等多重成一个单一帐户的用户需要登录。
一旦用户登录,SSO系统生成的各种公认的认证信息应用程序和系统。
SSO不仅可以在内联网中使用,还可以在外联网或因特网中使用。
单点登录系统主要包括:
单点登录服务器和单点登录客户端。
服务器主要负责用户的身份认证和实现单点登录的功能。
客户端通常和应用系统部署在一起,负责将用户的请求信息发送给单点登录服务器进行身份认证。
单点登录的访问流程一般包括以下步骤:
1、单点登录系统客户端发送请求,请求访问应用系统所提供的资源和服务。
2、单点登录客户端将请求重定向回服务器。
3、服务器对请求用户进行身份认证
4、认证通过后,给请求用户随机产生一个ServiceTicket,作为身份凭证。
5、单点登录服务器验证ServiceTicket的合法性,如果合法,允许用户访问资源。
6、当认证用户合法后传输结果给客户端,客户端储存信息。
7、注销用户登录
当用户未注销登录时,合法用户访问其他资源时候,不需要对该用户再次进行身份验证,即实现了单点登录。
如图2-1:
图2.1
复杂的SSO使用单组凭证可以通过两种方式来完成,即基于凭证和基于公钥如下:
(1)基于凭证的SSO系统:
在这种SSO系统,用户提交的凭据到基于凭证的认证权威机构,在该认证中心检查其凭据数据库。
如果用户凭据相匹配,则给用户返回一个凭证。
当用户想要访问其支配的应用服务器时,同理携带之前的票据访问应用程序服务器。
这个过程的成功依赖于服务系统都信任该认证机构。
(2)在HTTP环境下的基于凭证的SSO系统
基于凭证的SSO可通过在HTTP的环境中使用的cookie来实现。
一个cookie是一组由网络服务器提供给网络浏览器的信息,并存储在客户机上。
用于身份验证的cookie可以被加密,使之更加安全可靠。
该服务器可以再检测cookie,并给客户提供个性化的服务。
在网络环境中Kerberos系统提供基础建设固定的SSO,然而,它需要客户端的基础设施和配置。
在支持HTTP的环境,cookies可被用于构建SSO系统但并不需要多余的安装或必要的配置。
Kerberos系统和Cookies功能SSO的最大系统区别是,前者使用远程过程调用以传输认证的票据,而后者则使用cookies标记。
(3)基于PKI的单点登录系统
在基于PKI的SSO,服务器/资源和用户验证对方时,使用其各自的密钥对。
用户可以通过服务器解密任何验证服务器消息,他们发送的信息是由服务器的公钥加密。
同样的方式,服务器可以通过他认证过的用户向它们发送消息,该消息是由所述加密解密用户的公共密钥进行加密的。
作为私钥的真正拥有者只能解密,相互认证如服务器验证用户身份。
用户和服务器的认证机构可以是不同的,如果他们是不同的,该认证机构之间必须是相互信任的。
2.3.3单点登录协议
在本节中,我们将讨论的简单和复杂的SSO架构使用不同的协议。
2.3.3.1Kerberos身份验证协议
Kerberos是一个经典的实现基于令牌的分布式认证协议。
该整个过程分为三个过程和四个实体。
四个实体是:
1)客户端-想要访问的资源2)认证服务器(AS)-可以验证客户端和资源3)票据授权服务器(TGS)-生成票据访问资源;4)应用服务器(S)-访问请求的资源。
三个过程是:
1)认证请求和响应:
在客户端提交认证请求,并将请求提交给认证服务器进行认证响应2)票证授予的请求和响应通信:
用户进行身份认证后,提交给票据授权服务器,产生用户所对应的票据,并将其返回给应用程序3)应用程序的请求和响应:
在客户端使用它从票据授权服务器(TGS)得到票据与应用服务器(S)沟通,在需要的凭据时,第2次和第3次的过程是不断重复后,客户端有权访问其他资源。
2.3.3.2安全断言标记语言
安全断言标记语言(SAML)是一种基于XML的开放式标准,交换安全域,即身份提供者和服务之间的认证和授权的数据供应商使用SAML,在线服务提供商的联系人的在线身份提供哪些验证谁试图访问安全内容的用户。
SAML没有规定如何验证用户;而它定义了一种方法,一旦用户是交换认证和授权数据验证。
SAML是不是一系列基于XML的消息的所谓的断言,详细说明而已用户是否被认证(认证断言),有什么样的权利,角色和访问基于(属性断言),他们已经和他们如何使用的数据和资源(授权断言)对这些权利和角色。
它使用HTTP,SMTP,FTP和SOAP,以及其他协议和技术传输这些断言。
2.3.3.3OpenID登录
OpenID是一个分散的身份验证协议。
的OpenID包括三个主要实体:
1)在OpenID的标识符:
文本或电子邮件地址唯一标识用户的字符串;2)OpenID依赖方(RP):
Web应用程序或服务提供商想要证明最终用户拥有该标识;3)OpenID提供者(OP):
一个中央服务器的问题,商店和管理用户的OpenID的标识符。
依托双方依靠此提供一个论断,即最终用户拥有该标识。
主要有四种方法的OpenID协议中使用:
1.Discovery,2.Authentication,3.Association,4验证。
发现:
最终用户凭用户提供的标识符到依赖方发起认证通过他们的浏览器。
RP就可以执行发现(发现),并建立了OP端点URL其中所使用的用户进行身份验证。
认证:
RP最终用户的浏览器重定向到一个OpenID认证请求OP。
OP建立了端用户是否被授权。
OP重定向最终用户的浏览器返回到向RP要么是断言,认证认可,或一条消息,验证失败。
关联关系:
使用Diffie-Hellman密钥的RP和OP建立共享秘密的关联建立交换。
OP使用该协会签署后续的消息和RP验证这些消息;此不再需要后续的直接要求每个认证后,验证签名请求/响应。
验证:
RP验证从OP包括检查返回URL接收到的信息,验证发现的信息,检查随机数,并通过使用所述共享密钥验证所述签名在协会或通过发送一个直接请求OP建立。
2.3.4单点登录的优点
在当前的数字世界中,用户可能需要访问多个系统来开展他们的一天活动。
系统的数量在不断地增加,每个用户需要记忆的凭证数量也随之增加并由此带来的可能失去或忘记他们的密码事件也增加了。
单点登录,可以用来解决涉及用于不同应用程序的多个凭证的许多问题。
单点登录访问主要认证中心可以让用户访问所有可用的其他资源。
SSO帮助用户解决记住多个密码的烦恼,也提高了用户和开发人员的生产力,减少用户花费在输入各种密码的登录时间。
从不同的角度和角色进行分析单点登录的优点:
用户角度:
提高了用户的工作效率,告别了繁琐的登录过程,减少了登录时间,更加避免了大量密码需要记住的烦恼,减少了因为密码相同或者在笔记本中记录密码而发生泄漏的危险。
管理员角度:
简化了管理员日常的管理工作,管理员不需要频繁的帮助用户找回密码,并且有利于管理员进行管理,在有人员变动时,不需要一个个应用系统的操作,能够实现快速的整合添加应用系统,委派访问权限时候也减少了管理员的工作量。
2.4基于CAS单点登录模型
2.4.1CAS背景及特点
CAS( CentralAuthenticationService )是Yale发起的一个项目,它为了实现一种企业级的WEB单点登录项目。
这个项目是开源的,提供多种协议解决方案,支持多种认证机构,比如 ActiveDirectory、LDAP、JDBC、JAAS等。
它的安全策略采用票据的方式,支持授权,可以决定哪些服务可以请求验证票据服务,它提高了单点登录的可用性,同时支持多种客户端,如Java、PHP、Apache、Perl、.Net等。
2.4.2CAS结构体系
CAS包括两部分组成:
一部分是CASClient,它和应用系统客户端部署在一起,用户登录时,将用户重定向到服务器,并将用户名和密码传递给服务器进行验证。
另一部分是CASServer,它负责将客户端传递过来的参数进行认证,认证成功后返回票据给客户端,并完成票据的兑换等工作。
2.4.3CAS原理基本原理
当用户第一次通过web浏览器访问资源时候,CAS客户端和应用系统客户端部署在一起,会直接跳转至CASClient端,进行对用户身份的验证,用户在CASClient端需要提交用户名和密码,客户端重定向回CASServer,将用户的用户名和密码提交给CASServer,同时将用户需要访问的资源地址发送给CASServer,CAS进行验证用户身份,如果用户是合法身份,将会给用户产生一个Ticket,作为用户的身份标识,CASServer并将生成的Ticket和Service返回给CAS客户端,客户端进行票据的验证,CASServer通过票据获取到用户的用户名,用户名合法后,允许用户访问应用系统或者资源,CAS认证结束。
CAS的基本原理图2.2如下:
图2.2
2.4.4CAS实现单点登录原理
当用户第一次通过浏览器访问资源的时候,会获取客户端的Session,如果客户端存在Session,证明会话没有注销直接访问到资源,但是我们是首次登录,所以在客户端中检测不到session,则重新定向会浏览器,然后获取浏览器中的cookie,将cookie中的TGT发送给CAS服务端进行请求认证,如果已经登录则返回ST给客户端,然后客户端用这个ST兑换用户名登录资源,但是由于是首次登录