事业发展·现代化建设中国图书馆学报(双月刊)2008年第5期ZHONGGUO摇TUSHUGUANXUEBAO荫郭秋萍摇焦摇允摇周九常一种面向Web图书馆的读者认证信息单点登录模型研究*摘摇要摇目前Web图书馆电子资源传统访问方式存在着缺陷。对读者认证信息的单点登录模型进行了研究,提出并验证了Web环境下的联合SSO模型。该模型利用用户首次的登录信息,将其在分布式Web图书馆站点之间进行传递,从而在整个数字图书馆联盟内实现“一次登录,多站点访问冶。图4。参考文献4。关键词摇Web图书馆摇读者登录摇读者信息认证摇单点登录模型摇数字图书馆联盟分类号摇摇Atpresent,,theauthorsmakeastudyofamodelofuserinformationauthenticationSingleSign鄄On,蒺sfirst鄄timesign鄄oninformation,deliversitamongdistributedWeblibrarysites,andrealizes“one鄄timesign鄄onandmultiple鄄摇Weblibrary.摇Usersign鄄on.摇Userinformationauthentication.摇SingleSign鄄Onmodel.摇摇摇引言验证方法,其验证原理是:若用某个用户的密钥加密当前基于Web构建数字图书馆联盟的研究主要某一信息,那么只有该用户才能解密[2]。因此,通过集中于系统集成与资源整合,如对图书馆信息系统进解密即可证明该用户的合法性。Kerberos模型包括行Web服务和数据的整合等。数字图书馆联盟作为三个参与方,即需要进行身份认证的双方和一个双方一个跨域分布式Web系统,对外部用户提供跨越不都信任的第三方。其中,发起方称为客户方,响应方同可信域的无缝链接十分重要。现有的图书馆信息称为服务器方,进行统一用户验证和票据发放的一方系统普遍采用用户认证机制,只有登录成功的用户才称为密钥分发中心(KDC)。客户方通过向服务器方具有访问该站点提供服务的权限,这种情况导致用户递交自己的“票据冶(Ticket)以验证身份,票据中封装在访问某一联盟成员馆站点时,必须重新登录,严重了加密密钥和其它信息,是Kerberos模型的核心。影响了整个系统在逻辑上的统一性,不利于数字图书KDC能够发放的票据有两种:票据授权票据(TGT)馆联盟的真正实现。尤其是在基于Web平台的图书和服务票据(ST)。单点登录时,KDC首先向合法用馆联盟中,各成员之间的松耦合性更加明显,所采用户发放TGT,合法用户在访问某一服务时,利用TGT的认证技术可能完全异构,使得登录问题更加突出。向KDC申请该服务的ST,经过客户方和服务器方双单点登录(SingleSign鄄On,SSO)技术利用用户首次的端认证后,建立双方会话(Session)。登录信息,将其在分布式Web图书馆站点之间进行Kerberos模型是目前实现身份认证及单点登录的传递,从而在整个联盟域内实现“一次登录,多站点一个主要且相对成熟的模型,但由于Kerberos模型无法访问冶,是解决该问题的有效途径之一[1]。在异构环境下实现站点间的单点登录,因此,不能将其2摇主流单点登录模型直接应用到数字图书馆联盟这样的分布式系统中。摇Kerberos模型摇SAML模型Kerberos是一种基于密钥分发模型的网络身份SAML(安全声明标记语言)定义了一个基于声*本文系国家社会科学基金项目“我国图书馆知识转移与共享体系和策略研究冶(项目批准号:06BTQ009)的研究成果之一。—33—
第34卷第177期中摇国摇图摇书摇馆摇学摇报2008年9月,2008明(Assertion)的安全信息交换框架,单点登录是其中为例论证本文提出的联合单点登录模型的认证过程。一个主要的设计目标[3]。其基本原理是:通过在不摇基本数据结构同站点之间交换用户声明,实现用户一站式的Web联合单点登录模型需要用到的基本数据结构有:访问。当用户第一次登录一个支持SAML的系统后,票据模型与SAML令牌模型。其中,票据模型又包括其授权信息便以声明的形式被存放。一个声明可由票据(Ticket)和票据存根(Stub)两部分。票据存根多个域组成,分别用来存储声明ID、主体名字、主体记录用户的登录信息,而票据只是对票据存根的安全域、声明生效条件、允许对哪些资源进行访问等引用。信息。在用户访问其它站点时,仅交换声明即可,无票据存根(Stub)可用数据结构表示为:Use_Stub需重复认证。(StubId,UserId,Site,UserIp,BeginTime,EndTime,由以上可知,SAML模型中的声明包含的只是用Interval,SessionId)。其中StubId表示票据存根编号,户首次认证成功后的结果信息,其本身并不提供具体UserId是用户编号,Site为当前访问站点,UserIp为用的认证机制,若把SAML模型直接应用到分布式系统户浏览器IP,BeginTime、EndTime分别是票据存根创来实现单点登录,则存在安全性薄弱的问题。建时间和撤销时间,Interval为最长访问时间间隔,3摇基于Web的联合单点登录模型SessionId是用户浏览器与需访问Web服务器之间的Kerberos模型具有比较安全的身份认证机制,但会话密钥,每次重建会话时SessionId也随之重新不能实现Web环境中异构系统之间的相互认证。生成。SAML模型虽然具有较好的跨平台无缝链接能力,但票据用表达式(Sid,Sign(Sid,K-1SSOS))KS表示,缺乏有效的认证机制,安全性比较薄弱。本文将两种其中Sid表示会话密钥,S表示用户需要访问的Web模型进行融合,取长补短,提出一种新的基于Web的服务器,SSOS表示Kerberos认证服务器,Kx表示x的联合单点登录模型,如图1所示。公钥(x为变元,可代表S或SSOS,下同),K-1x表示x的私钥,(…)K表示使用密钥K对括号中的内容进行加密,Sign(…,K-1x)表示对括号中的内容使用x的私钥进行签名。SAML令牌的数据结构表示为Token(SAML_To鄄kenId,Signed_Assertion)。其中,SAML_TokenId代表SAML令牌编号,用来唯一标识用户令牌;Signed_As鄄sertion代表已签名的用户SAML声明,包含用户认证信息。由于XML具有良好的数据结构定义能力和跨平台性,因此,以SAML令牌形式可很好实现认证信息在异构站点之间的传递。摇未登录用户的登录过程图1摇基于Web的联合单点登录模型未登录用户登录数字图书馆联盟某一Web站点联合单点登录模型以Kerberos模型为基本认证1的过程如图2所示。机制,以保证安全性,对于联盟图书馆中未采用Ker鄄各方之间的信息传递和执行操作表示如下:beros模型的站点,则使用SAML声明在域间交换认(1)User_Browse寅Web_Server:http_request(page证信息,以实现异构系统之间的相互认证。_url)4(2)Web_Server寅SSO_Server(联合单点登录服摇数字图书馆联盟的单点登录过程数字图书馆联盟是一种建立在多个独立图书馆务器):http_request(page_url)之上的虚拟联合或逻辑联盟,它以网络为运行平台,表(3)SSO_Server寅User_Browse:login_page现为不同站点所提供的Web服务的集合[4]。用户在(4)User_Browse寅SSO_Server:Use_Info(name,访问数字图书馆联盟的不同站点时,单点登录过程包password)括未登录用户登录某一站点的过程和已登录用户在SSO_Server寅User_Browse颐(Sign(Tickettg,s不同站点间透明跳转的过程。下面分别以这两种情况K-1User_Browse),Sidtg)s—34—
郭秋萍摇焦摇允摇周九常:一种面向Web图书馆的读者认证信息单点登录模型研究GuoQiupingetal.:AModelofUserInformationAuthenticationOne鄄PointLog鄄inOrientedtoWebLibraryUserBrowse寅SSO_Server:(Tickettg)Krequest(page_url_2),(SidS,Sign(SidS,K-1sSid(5)SSO_Server寅Ticket_Manager:(Use_Stub(Stu鄄s))KSSO_Serve)rbId,UserId,Site,UserIp,BeginTime,EndTime,Interval,SessionId),((Sidtg,Sign(Sidstg,K-1sSSO_Serve))KrS,SidS)图3摇站点间透明跳转的过程(3)SAML_Server寅Ticket_Manager:(SidS,Sign(SidS,K-1s))KSSO_Server(4)Ticket_Manager寅SAML_Server:(Use_Stub,Sign(Use_图Stub,K-12SSO_Serve)Ks)r摇未登录用户的登录过程(5)SAML_Server寅Ticket_Manager:Token(SAML(6)Ticket_Manager寅User_Browse:(((Sidtg,s_TokenId,Signed_Assertion)Sign(Sidtg,s(6)Ticket_Manager寅Web_Server1:Token(SAML摇K-1_TokenId,SSO_Serve))KrS,SidS)(7)Ticket_Manager寅Web_Server:SidSigned_Assertion)S(8)Web_Server寅Ticket_Manager:(SidS,Sign(7)Web_Server1寅SSO_Server2(异构认证服务(SidS,K-1s))器):SOAP(Token)摇KSSO_ServerTicket_Manager寅Web_Server:(Use_Stub,(8)SSO_Server2寅Web_Server1:page_url_2S(9)Web_Server1寅Web_Server2:page_url_2ign(Use_Stub,摇K-15摇系统的设计与验证SSO_Serve)Ks)r(9)User_Browse寅Web_Server:page_url在系统设计与实现时,其总体架构由三部分组通过以上流程,图书馆Web站点1的票据管理成:认证客户端、联合认证服务器以及应用服务器端。服务器中已存储有用户认证信息,为用户接下来在站根据Kerberos模型与SAML模型联合认证的原理,联点间透明跳转提供凭据。合认证服务器可由以下主要模块实现。摇站点间透明跳转的过程淤认证服务模块:对用户提交的认证信息进行处已登录用户在访问Web站点1时提出对Web站理,判断用户身份是否合法,并根据判断结果决定是点2的访问,即用户在站点间进行透明跳转,其跳转否返回TGT票据。过程如图3所示。于票据授权服务模块:对用户申请具体的应用服各方之间的信息传递和执行操作表示如下:务票据的请求进行处理。根据用户提交的TGT的有(1)Web_Server1寅Web_Server2:http_request效性以及用户身份的合法性决定是否返回相应服务(page_url_2)器票据ST。(2)Web_Server1寅SAML_Server(重定向服务盂密钥管理模块:负责随机生成会话密钥,将用器):(http_户输入的用户名及密码转换成用户的长期密钥。—35—
第34卷第177期中摇国摇图摇书摇馆摇学摇报2008年9月,2008榆Web请求重定向服务模块:在访问有异构认览器直接显示相关页面内容,而不需要再次登录,以证服务器的站点时,根据Kerberos认证服务器中用户实现站点间的跳转。首次认证的信息创建SAML声明,并生成一个相应的6摇结论SAML令牌。Kerberos模型和SAML模型是目前两种主流的虞SAML辛迪加服务模块:对用户提交的SAML单点登录模型,各有其优缺点。本文通过对它们进行令牌进行解析,提取出其中的SAML声明,验证声明分析、比较,取长补短,提出了一种新的Web环境下的有效性并根据声明决定用户的访问权限。的联合单点登录模型。并以未登录用户登录某一站愚数据处理模块:对各种数据信息进行解包或者点和已登录用户在不同站点间透明跳转这两种典型封装操作。模块包括有加密/解密函数,针对于票据、情况为例,论证了该模型的认证过程。验证结果表明票据存根、SAML令牌等数据结构的解析与封装该模型同时具有基于密钥的安全性和跨平台无缝链函数。接两种特点,适合用于构建数字图书馆联盟这样的分除了上述模块之外,还需要根据情况编写一些非布式系统的单点登录。功能性的模块,如线程控制模块、传输控制模块等。采用为服务器平台对整个参考文献:联合认证过程进行了实验,其结果如下:[1]摇GilmoreB,FarvisK,(1)首次访问数字图书馆联盟站点1的登录页SharedServicesStudiesSingleSign鄄onReport[EB/OL].面:7001/,在登录表