文/郭曉明 李英壯 劉化總
三種認證機制實現單點登錄
文/郭曉明 李英壯 劉化總
一般優先考慮基于認證平臺的應用漫游方式,之后是基于共享密鑰的協議登錄機制,最后才考慮基于自配置的模擬登錄機制。
當前,高校面對復雜的應用環境,開發出許多管理信息系統,不同的應用系統,需要不同的賬號密碼登錄,這給用戶帶來不便。為了解決此類問題,各高校采用統一身份認證來實現單點登錄。
單點登錄即Single Sign-On(簡稱SSO),是一種統一認證和授權機制。它允許用戶在網絡中主動進行一次身份認證之后,就可以訪問所有被授權的網絡資源和應用系統,而不必再次登錄。為了在復雜的應用環境下實現單點登錄的目標,高校大都采用了多種認證集成機制,具體可以歸納為三種類型。
統一身份認證平臺存儲了全部的身份信息和對應的憑證信息,并提供了不同編程語言(Java,.net,PHP)的認證接口。業務系統完成身份信息同步和認證接口的部署之后,可以使用統一身份認證平臺完成身份的認證,不需要自己存儲憑證信息和實現認證。圖1標識了業務系統完成認證的相應過程。具體如下:
①用戶請求訪問業務系統。
②業務系統在系統中查看是否有對應請求的有效令牌,若有,則讀取對應的身份信息,允許其訪問;若沒有或令牌無效,則把用戶重定向到統一身份認證平臺,并攜帶業務系統地址,進入第③步。
③在統一身份認證平臺提供的頁面中,用戶輸入身份憑證信息,平臺驗證此身份憑證信息,若有效,則生成一個有效的令牌給用戶,進入第④步;若無效,則繼續進行認證,直到認證成功或退出為止。
④用戶攜帶第③步獲取的令牌,再次訪問業務系統。
⑤業務系統獲取用戶攜帶的令牌,提交到認證平臺進行有效性檢查和身份信息獲取。
⑥若令牌通過有效性檢查,則認證平臺會把令牌對應的用戶身份信息返回給業務系統,業務系統把身份信息和有效令牌寫入會話狀態中,允許用戶以此身份信息進行業務系統的各種操作;若令牌未通過有效性檢查,則會再次重定向到認證平臺,返回第③步。
通過統一身份認證平臺獲取的有效令牌,可以在各個業務系統之間實現應用漫游。
基于共享密鑰的協議登錄機制是高校信息化建設中常用的一種協議認證集成模式,通過共享密鑰和其他的信息組合加密完成系統間的認證,它需要在雙方系統部署不同程序,但不需要修改原先的認證模塊。圖2給出采用協議登錄機制形成的一般結構:各個業務系統的登錄跳轉程序都部署在一個入口系統中,而對應的驗證程序則部署在各自的業務系統,跳轉程序通過HTTP的get或post方法把雙方約定的協議數據提交到業務系統的驗證程序,驗證程序負責驗證數據的有效性,若通過驗證則跳轉到業務系統,否則拒絕使用。

圖1 基于統一身份認證平臺的應用漫游
此機制一般要求入口系統與業務系統端共同約定用戶賬號、時間戳、校驗碼、共享密鑰四個參數,并且要求雙方系統進行時間同步。入口系統通過跳轉程序要求訪問業務系統時,需要在url中加入username、time、verify三個參數值,并傳遞給業務系統。其中verify是由username、time和key組成并采用md5方式加密形成的一個串值。業務系統獲取各個參數后,比較業務系統服務器時間與接收的時間戳(time)是否在允許的時間差范圍內,如果在允許的范圍內,則需將接收到的username 、time及原先設定的key進行md5加密計算,獲得的一個串值且同verify進行比較,若一致,則完成了本次的認證登錄,并以username的身份訪問系統,否則登錄失敗。

圖2 基于共享密鑰的協議登錄

圖3 基于自配置的模擬登錄
通過此機制可以實現單點到多點的單向應用漫游,也可以擴展雙方認定的協議內容并進行功能的擴展,比如指定業務系統應用模塊參數(module)來實現到具體應用模塊的跳轉。
基于自配置的模擬登錄機制是針對那些基于Form表單方式登錄的Web業務系統設計的,它不需要對業務系統的原有認證模塊做任何修改。它利用用戶自我配置的業務系統賬號、密碼等信息,模擬用戶使用業務系統登錄頁面完成登錄的過程,在后臺直接提交相應的信息到業務系統的登錄驗證模塊,從而完成用戶登錄的過程。圖3描述了形成的主要體系結構。
首先在入口系統中建立一個入口系統賬號到各個業務系統賬號的映射表,此表一般需要包含以下信息:
1.入口系統賬號:存儲入口系統自身的賬號。
2.業務系統ID:標志不同的業務系統。
3.業務系統賬號:存儲業務系統與入口系統賬號對應的賬號。
4.業務系統基本角色:存儲在業務系統中的角色信息。
5.業務系統密碼:通過加密方式存儲業務系統的密碼信息。
其次,需要分析業務系統的登錄頁面和其對應的驗證邏輯,并在入口系統中建立對應的自配置程序,包括業務賬號密碼配置頁面、業務賬號密碼保存頁面、業務賬號密碼修改頁面等。
用戶在使用入口系統首次登錄業務系統時,需使用自配置程序把自己在業務系統中對應的賬號、密碼、角色存入入口系統的映射表中,之后就可直接通過入口系統完成到業務系統的應用跳轉。
每種機制都需要先進行一定的數據準備,再部署相應的程序,可以產生不同的應用漫游情況,所以它們適用不同系統的認證集成,具體分析如表1。
在信息化建設中,具體采用何種機制進行認證集成,需要具體情況具體分析,但是一般優先考慮基于認證平臺的應用漫游方式,之后是基于共享密鑰的協議登錄機制,最后才考慮基于自配置的模擬登錄機制。

表1 三種認證集成機制的分析對比
大連理工大學從2009年6月開始了學校的信息化整體建設,至今已陸續建成了公共數據交換平臺、統一身份認證平臺、校園綜合服務門戶等基礎平臺,并依次集成教務系統、研究生院管理系統、圖書館書目檢索系統、網絡自助系統、郵件系統、財務查詢系統、注冊系統、網站評比等系統,并把它們納入到了學校單點登錄認證體系中,如圖4所示。

圖4 學校單點登錄認證體系
學校采用CAS體系搭建統一身份認證平臺,此平臺支持LDAP和數據庫兩種方式進行認證,可以自由切換。校園綜合服務門戶是學校用戶的統一入口系統,通過門戶可以漫游到學校的各個重要的業務系統中。
對于新建立的學生注冊系統和網站評比系統,采用了基于認證平臺的方式進行認證集成,它們完全采用統一身份認證平臺的認證模塊,可以實現多點漫游。對于已有的教務系統、研究生院管理系統、圖書館書目檢索系統、郵件系統和網絡自助系統,采用協議認證方式,保留各自系統原有的登錄認證模塊,只能實現單點漫游。而對于財務系統,由于系統比較陳舊,對系統的改動難度較大,所以采用了自配置的模擬登錄方式實現了點到點的應用跳轉。
單點登錄(SSO)是高校信息化建設的重要課題,涉及全校師生的隱私和學校的機密資料,如何保證安全性是我們下一步應該考慮和研究的問題。
(作者單位為大連理工大學網絡中心)