2012-04-27

三种认证机制实现单点登录

  当前,高校面对复杂的应用环境,开发出许多管理信息系统,不同的应用系统,需要不同的账号密码登录,这给用户带来不便。为了解决此类问题,各高校采用统一身份认证来实现单点登录。  单点登录即Single Sign-On(简称SSO),是一种统一认证和授权机制。它允许用户在网络中主动进行一次身份认证之后,就可以访问所有被授权的网络资源和应用系统,而不必再次登录。为了在复杂的应用环境下实现单点登录的目标,高校大都采用了多种认证集成机制,具体可以归纳为三种类型。
 
  基于认证平台的应用漫游
 
  统一身份认证平台存储了全部的身份信息和对应的凭证信息,并提供了不同编程语言(Java,.net,PHP)的认证接口。业务系统完成身份信息同步和认证接口的部署之后,可以使用统一身份认证平台完成身份的认证,不需要自己存储凭证信息和实现认证。图1标识了业务系统完成认证的相应过程。具体如下:
  ①用户请求访问业务系统。
  ②业务系统在系统中查看是否有对应请求的有效令牌,若有,则读取对应的身份信息,允许其访问;若没有或令牌无效,则把用户重定向到统一身份认证平台,并携带业务系统地址,进入第③步。
  ③在统一身份认证平台提供的页面中,用户输入身份凭证信息,平台验证此身份凭证信息,若有效,则生成一个有效的令牌给用户,进入第④步;若无效,则继续进行认证,直到认证成功或退出为止。
  ④用户携带第③步获取的令牌,再次访问业务系统。
  ⑤业务系统获取用户携带的令牌,提交到认证平台进行有效性检查和身份信息获取。
  ⑥若令牌通过有效性检查,则认证平台会把令牌对应的用户身份信息返回给业务系统,业务系统把身份信息和有效令牌写入会话状态中,允许用户以此身份信息进行业务系统的各种操作;若令牌未通过有效性检查,则会再次重定向到认证平台,返回第③步。
  通过统一身份认证平台获取的有效令牌,可以在各个业务系统之间实现应用漫游。
 
  基于共享密钥的协议登录
 
  基于共享密钥的协议登录机制是高校信息化建设中常用的一种协议认证集成模式,通过共享密钥和其他的信息组合加密完成系统间的认证,它需要在双方系统部署不同程序,但不需要修改原先的认证模块。图2给出采用协议登录机制形成的一般结构:各个业务系统的登录跳转程序都部署在一个入口系统中,而对应的验证程序则部署在各自的业务系统,跳转程序通过HTTP的get或post方法把双方约定的协议数据提交到业务系统的验证程序,验证程序负责验证数据的有效性,若通过验证则跳转到业务系统,否则拒绝使用。
  此机制一般要求入口系统与业务系统端共同约定用户账号、时间戳、校验码、共享密钥四个参数,并且要求双方系统进行时间同步。入口系统通过跳转程序要求访问业务系统时,需要在url中加入username、time、verify三个参数值,并传递给业务系统。其中verify是由username、time和key组成并采用md5方式加密形成的一个串值。
  业务系统获取各个参数后,比较业务系统服务器时间与接收的时间戳(time)是否在允许的时间差范围内,如果在允许的范围内,则需将接收到的username 、time及原先设定的key进行md5加密计算,获得的一个串值且同verify进行比较,若一致,则完成了本次的认证登录,并以username的身份访问系统,否则登录失败。
  通过此机制可以实现单点到多点的单向应用漫游,也可以扩展双方认定的协议内容并进行功能的扩展,比如指定业务系统应用模块参数(module)来实现到具体应用模块的跳转。
 
  基于自配置的模拟登录
 
  基于自配置的模拟登录机制是针对那些基于Form表单方式登录的Web业务系统设计的,它不需要对业务系统的原有认证模块做任何修改。它利用用户自我配置的业务系统账号、密码等信息,模拟用户使用业务系统登录页面完成登录的过程,在后台直接提交相应的信息到业务系统的登录验证模块,从而完成用户登录的过程。图3描述了形成的主要体系结构。
  首先在入口系统中建立一个入口系统账号到各个业务系统账号的映射表,此表一般需要包含以下信息:
  1.入口系统账号:存储入口系统自身的账号。
  2.业务系统ID:标志不同的业务系统。
  3.业务系统账号:存储业务系统与入口系统账号对应的账号。
  4 .业务系统基本角色:存储在业务系统中的角色信息。
  5.业务系统密码:通过加密方式存储业务系统的密码信息。
  其次,需要分析业务系统的登录页面和其对应的验证逻辑,并在入口系统中建立对应的自配置程序,包括业务账号密码配置页面、业务账号密码保存页面、业务账号密码修改页面等。
  用户在使用入口系统首次登录业务系统时,需使用自配置程序把自己在业务系统中对应的账号、密码、角色存入入口系统的映射表中,之后就可直接通过入口系统完成到业务系统的应用跳转。
 
  对比三种机制
 
  每种机制都需要先进行一定的数据准备,再部署相应的程序,可以产生不同的应用漫游情况,所以它们适用不同系统的认证集成,具体分析如表1。
  在信息化建设中,具体采用何种机制进行认证集成,需要具体情况具体分析,但是一般优先考虑基于认证平台的应用漫游方式,之后是基于共享密钥的协议登录机制,最后才考虑基于自配置的模拟登录机制。
  单点登录认证集成的实践
  大连理工大学从2009年6月开始了学校的信息化整体建设,至今已陆续建成了公共数据交换平台、统一身份认证平台、校园综合服务门户等基础平台,并依次集成教务系统、研究生院管理系统、图书馆书目检索系统、网络自助系统、邮件系统、财务查询系统、注册系统、网站评比等系统,并把它们纳入到了学校单点登录认证体系中。
  学校采用CAS体系搭建统一身份认证平台,此平台支持LDAP和数据库两种方式进行认证,可以自由切换。校园综合服务门户是学校用户的统一入口系统,通过门户可以漫游到学校的各个重要的业务系统中。
  对于新建立的学生注册系统和网站评比系统,采用了基于认证平台的方式进行认证集成,它们完全采用统一身份认证平台的认证模块,可以实现多点漫游。对于已有的教务系统、研究生院管理系统、图书馆书目检索系统、邮件系统和网络自助系统,采用协议认证方式,保留各自系统原有的登录认证模块,只能实现单点漫游。而对于财务系统,由于系统比较陈旧,对系统的改动难度较大,所以采用了自配置的模拟登录方式实现了点到点的应用跳转。
  单点登录(SSO)是高校信息化建设的重要课题,涉及全校师生的隐私和学校的机密资料,如何保证安全性是我们下一步应该考虑和研究的问题。

产品订购热线

010-51661846

Copyright © 北京奥龙飞腾科技有限公司 All rights reserved.

地址:北京市海淀区大柳树富海中心2号楼408    网址:www.aolongsoft.cn