开篇:润墨网以专业的文秘视角,为您筛选了一篇单点登录技术分析及在数字图书馆中的应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
[摘要]针对数字图书馆建设中存在的各应用系统之间分散认证的问题,提出基于统一身份认证技术的单点登录(SSO)解决方案。文章首先论述统一身份认证和单点登录的概念、功能及相互之间的关系,然后分别以Microsoft,NET Passport和Liberty为例,分析单点登录技术在数字图书馆中的应用特点和实现方法。
[关键词]数字图书馆 统一身份认证 单点登录 Passport Liberty
[分类号]TP393
1 分散式认证的弊端
在数字图书馆早期的资源建设中,受技术上的限制,数字资源呈现出编码格式、存储形式及访问方式的多样性和不兼容性,管理和使用很不方便。近年来,随着Web应用技术的逐渐成熟,大量数字文献资源通过Web方式供用户查询和访问,大量的Web应用服务器成为数字图书馆的资源主体。在数字图书馆中,大量数字文献资源在应用中需要对用户身份进行认证,只有授权用户才能够访问。为此,就出现了如图1所示的应用局面:
每一个应用系统都有自己单独的Web服务器和数据库(包括用户数据和业务数据库),当用户访问某一个应用系统时,应用系统的Web服务器首先要对用户的身份进行认证,当认证通过后才可以访问业务数据库中的资源。大量数字图书馆的建设和应用都使用这种分散式认证方式。
在分散式认证方式中,每一个应用系统都拥有各自独立的用户信息、相互分离的数据库和应用平台,这种各自为政的服务模式表面上很灵活,但实际上却增加了管理上的复杂性和应用中的不安全性,而且会导致信息孤岛的出现。另外,当同一用户下一次访问同一应用系统,或在同一时间范围内访问其他的应用系统时,每一个应用系统都要对该用户的身份进行认证操作。这种貌似非常严密的管理方式,却为用户的使用带来了极大的不便,很不适合现代数字图书馆中的应用。
2 统―身份认证与单点登录技术
2.1利用统一身份认证技术解决分散式认证存在的弊端
针对分散式认证存在的弊端,提出如图2所示的集中式认证方式:
在集中式认证方式中,应用系统不需要拥有独立的用户数据库,所有应用系统共享同一个存放于统一身份认证服务器的用户数据库中的用户账户信息。当用户需要访问某一应用系统时,其身份认证工作交给统一身份认证服务器完成,当认证通过后再授权访问所需要的资源。
统一身份认证的主要思想是通过一个适合于所有应用系统的、唯一的认证服务系统来接管各应用系统中单独的认证模块,各应用系统只需要遵循统一认证服务调用接口,即可实现用户身份的认证过程。至于用户身份信息、可能需要的密码的存储及在网络上传输的安全性保护,则由身份认证服务提供的安全认证协议来保证。根据应用需要,统一身份认证系统主要实现用户管理、身份认证和分组权限管理等功能,以解决数字图书馆建设过程中用户定义模糊、用户身份组织零乱、交叉权限管理无法定义和应用系统出口多样性等问题。在使用了统一身份认证系统后,整个系统的身份验证都由统一身份认证服务器来承担,而访问控制等其他安全机制可由各个应用系统自行控制。这样,在认证服务器上实现各种认证方式和算法,确保了认证的安全性,减轻了实现的复杂性,同时也增强了系统开发和应用的灵活性。
2.2建立在统一身份认证基础上的单点登录技术
统一身份认证虽然解决了用户分散认证的问题,但没有实现一次登录多次访问的功能。用户在访问每一个应用系统之前,还需要进行身份认证操作,只是认证操作由统一身份认证服务器来集中管理,而不是由分散式认证中的各个应用系统单独完成,仍然不便于系统的使用。为解决同一网络中多应用系统之间的复杂登录问题,在统一身份认证基础上提出了单点登录技术。
所谓单点登录(Single Sign-On,SSO)是指先采用强制认证机制对用户进行基本身份的验证,如果通过这次验证就可以透明登录本园区网(数字图书馆)中所有授权的应用系统,而不需要再次进行认证操作。这里的园区网是一个安全域,统一身份认证功能只对加入该安全域中的应用系统起作用。单点登录实现了一次登录多次访问的功能,即同一用户只需要强制认证一次,就可以自由的访问同一园区网中的其他应用系统,而系统的身份认证操作则在后台以隐蔽方式自动执行。部署并运行了单点登录的用户客户端,只需要用鼠标点击当前应用程序输入窗体就可以登录该应用系统,不需要每次手工输入该用户登录该应用系统时所需要的用户名和口令。
3 数字图书馆中单点登录的应用特点
单点登录可以实现B/S和C/S模式下网络应用的自动登录,目前主要应用于B/S模式下。在数字图书馆等网络应用系统较多的园区网络中,采用单点登录技术大大减轻了用户记忆和管理各种密码的负担,同时避免了键盘输入过程中可能存在的被他人窥视和利用键盘记录软件记录用户输入信息的安全隐患,为网络应用提供了更高的效率和更好的安全保障。具体讲,在数字图书馆中使用单点登录具有以下的应用优势:
・自动完成登录。用户只需要登录一次就可以访问数字图书馆中所有授权的应用系统和资源,不需要用户手动输入登录每一个应用系统时的用户名称和口令。避免了以往每一个应用系统单独维护自己的认证系统的不足。
・强制认证。通过采用单点登录技术,由一个统一的用户登录系统(统一身份认证系统)同时管理多个应用系统的身份认证操作,提供统一、强制的用户认证登录,增加了应用系统的安全性。
・提高工作效率。使用了单点登录技术后,身份认证系统与应用系统之间是一对多的关系,由统一身份认证系统管理用户登录信息,实现了用户基本信息的共享。用户只需要登录一次,就可以在不同的授权系统之间进行转换而不必重新登录,从而避免了系统开销,提高了开发和用户操作的效率。
・便于管理。用户的账户信息存放在专门的用户目录数据库(如LDAP数据库)中,统一保存、集中管理,减少了出错的概率,同时也减轻了网络管理人员维护系统的工作量。
・易于扩展。在采用了基于统一身份认证的单点登录技术后,用户账户从应用系统中脱离,并存放在专业的用户目录数据库(如LDAP数据库)中,而业务数据仍然存放在系统自身的业务数据库(如Oracle、MSSQL等)。当有新的应用系统加入时,只需要对用户的身份认证进行分离和整合,而不需要修改业务数据库,易于系统的扩展。
4 数字图书馆建设中单点登录典型方案分析
4.1
Passport
Passport单点登录系统是的重要组成部分。Passport单点登录系统仅对用户进行单点登录过程中的身份验证,当用户通过验证后是否允许访问某个(或某些)特定的Web服务或资源则由每一
个应用系统的内容授权程序来确定。用户一次登录后便通过所有在Passport中注册站点(加盟站点)的身份验证,而不需要对每一个站点的应用系统进行单独的、重复的登录。概括地讲,Passport单点登录技术的特点表现为:集中式认证、分布式授权、整个过程对用户透明,目前的主流Web浏览器不需要安装任何插件就能够直接支持,非常适用于在Intranet和Internet环境中使用。如图3所示,Passport单点登录的实现过程如下:
・这一步有两种方式:一种方式是用户点击已加盟到数字图书馆passport(以下简称passport)的某一应用系统的“登录”按钮,通过http重定向到passport的认证页面;另一种方式是直接打开passport的认证页面。不管采用哪一种方式,都需要在passport页面中输入用户的账户名称和对应的密码;
・单击“确认”按钮后,用户提交的信息(账户名称和对应的密码)通过http以表单(Form)的形式被发送到passport,其他加盟站点并不会收到该信息;
・Passport将接收到的用户和站点信息在活动目录(Active Directory)数据库中进行验证。如果验证成功,则从数据库中取出该用户的用户ID(UID)及相关的配置参数(profile),并将其保存到该用户端的Cook-ies中;
・Passport用加盟站点的加密密钥(如果系统采用了加密措施)加密用户票据(Ticket)和配置参数,并将其作为加盟站点URL的相关参数,使用户的Web浏览器重定向到该加盟站点的URL。这时的用户票据包含了UID和时间戳(timestamp),时间戳决定了Cookies的有效期,系统默认值为4小时;
・用户返回到加盟站点后,加盟站点上的Pass―port管理对象使用解密密钥(与上一步中的加密密钥对应)对用户票据(Ticket)和配置(profile)参数进行解密处理,并利用解密得到的用户配置信息在该加盟站点中建立一个Cookies。此后,在Cookies中时间戳确定的时间内,当该用户再次登录该加盟站点时,加盟站点可根据用户的UID和用户配置信息来提供相应的个性化服务,而不需要进行再次认证;
・当用户访问其他已加盟passport的站点时,并不需要输入用户账号和密码。因为,Passport会以用户端的Cookies来判定用户是否已登录,同时是否更新Cookies数据。然后使用对应加盟站点的加密密钥加密用户票据和用户配置参数,再将其发送到对应的加盟站点。该加盟站点通过检查解密后的用户票据和用户配置参数来确定该用户的身份,并提供相应的服务。此过程实现了单点登录;
・当用户退出系统时,可注销在passport中的注册信息。
Passport的各个协作实体采用标准的Web协议(http或https)来传输数据,并通过Cookies来存储会话票据(Session Ticket)。Passport是整个系统认证的核心,存储了所有用户的认证信息和加盟站点的站点标识(Site ID)。在安全性方面,Passport采用了TripleDES对称加密算法。在Passport单点登录过程中,Passport并没有直接与加盟站点进行数据交换,所有认证信息均由客户端存储和转发(见图3)。
Passport的特点是实现原理简单且部署方便,但其兼容性和安全性较差。在兼容性方面,passport仅支持用户账号和密码方式的认证,这种较弱的认证强度不能满足不同层次用户的应用需求;在安全性方面,pass-port对认证过程的保护强度较弱,易受各类攻击。但对于数字图书馆等对安全性要求并不是非常高的应用来说,Passport完全能够满足应用需求。
4.2 Liberty
在 passport方案中,用户的所有认证信息集中保存在单一的passport数据库中。为了在大中型网络中实现用户认证信息的分散保存,并提供分布式的认证服务,2001年9月由SUN、HP、Sony、RSA、AOL等40多个成员单位联合成立了自由联盟计划(Liberty Alliance Project,简称为Liberty)。
与Passport不同,Liberty规范并没有定义一个中心位置的认证系统,也没有要求将加盟站点的用户迁移到中心认证系统,加盟站点和认证系统之间可以建立一对多或多对多的联盟关系,认证系统之间也可以建立联盟关系。Liberty规范要求建立联盟关系的系统账号之间要建立映射,通过映射关系间接地实现账号的全局性。当用户登录某一个加盟站点时,该请求被指向认证系统。当用户输入认证系统所需的账号和密码并通过认证后,认证系统将用户重定向到加盟站点,加盟站点根据映射关系使本地账号作为登录账号进行登录。
在Liberty规范中主要有以下3类实体:主角(Principal)。指在Web上有(或者将有)一个(或多个)标识的实体。Principal一般指用户(人),有时也指软件或设备(物);身份提供商(Identity Provider,IdP)。指Principal的身份提供商,向其他身份提供商和服务提供商确认Principal身份的真实性;服务提供商(se―ice Provider,sP)。是Principal能够使用的服务提供商,但它不向其他的服务提供商确认Principal身份的真实性。
Liberty利用SAML(security Assertion Marku PLan―guage,安全断言标记语言)实现在信任圈成员内的单点登录。其中,通过SAML技术将身份认证与授权服务器中的用户元数据库同各个应用的子数据库进行信息的交互,这种技术可以忽略各个数据库之间数据结构定义的差异,甚至可以忽略实现结构之间的差异。例如,用户元数据库可以基于LDAP,而其他的应用数据库可以是一个关系型数据库(如Oracle、MS SQL等)、一个桌面数据库(如VFP等)、甚至是一个XML文件。信任圈是指具有业务关系的服务提供商和身份提供商联合在一起组成的一个信任域。图4显示了在一个信任圈(IdPl、SPl和SP2)内的登录过程:
・用户通过Web方式登录服务提供商SPl;
・SPl通过重定向方式将对该用户的验证请求转发给身份提供商IclPl,请求IdPl的验证;
・用户输入登录账号和密码,当通过验证后,建立一个验证会话;
・IdPl将用户重定向到SPl;
・SPl请求在重定向用户时创建的SAML断言,然后发送给IdPl。IdPl向SPl返回一个SAML身份认证断言;
・用户此时请求服务提供商SP2提供服务(登录SP2服务器);
・这时,SP2会查询用户与IdPl之间是否存在会话?在本实例中,由于用户与IdPl之间已经建立了会话(已进行了登录认证),而且SP2和IdPl是验证联盟,所以SP2相信由身份提供商IdPl公布的用于该用户的SAML认证断言,完成了单点登录操作;
・如果需要,IdPl还向SP2请求更多的SAML认证断言。
通过联盟这一形式,Liberty规范要求建立联盟关系系统的账号之间需要建立映射,通过映射关系间接地实现账号的全局性,Liberty隐蔽了单一登录协议的许多复杂性,实现了多应用系统环境中的单点登录。Liberty规范相对完备,自由度较高,非常适应于网络规模大、应用系统之间比较分散的数字图书馆中的应用。如一校多区跨校区数字图书馆的建设以及多所高校之间数字资源的联合开发和建设等,都可以采用Liberty规范来实现。
5 结语
数字图书馆建设是图书馆工作顺应现代信息技术发展需要的重要战略,这项工作不仅关系着图书馆的服务质量,而且影响着图书馆的生存与发展。能否利用现代信息技术,在拥有大量信息资源的同时,以便捷、友好、安全的方式向用户提供数字文献资源服务,已成为衡量现代图书馆服务质量的重要标准。近年来,各单位数字图书馆的建设步伐不断加快,但从整体上看,目前完全构建在基于单点登录技术上的数字图书馆还不多,许多单位尚处于摸索阶段,正在结合本单位的特点,从技术原理、实现方式、应用特点等方面进行理论探索和实践尝试。为此,笔者通过理论研究和大量的实践,以 Passport和Libe啊两个典型的单点登录标准为例,提出了适合数字图书馆不同应用需要的单点登录解决方案,供读者及数字图书馆的建设者和管理者参考。