常艷遼寧警官高等專科學校 遼寧 116037
隨著網絡的發展,網絡應用更加豐富,各領域和各行業逐漸將各種信息管理及業務處理都移植到網絡中,學校也不例外。涉及到學生的基本信息、選課情況、成績以及學生的表現情況都在網絡當中管理;涉及到教師的教師基本信息、授課情況、考勤和考核信息等也在網絡當中管理;涉及到學校的各方面狀況(如師資狀況、校舍狀況及財務狀況等)、各部門情況及工作的完成情況等也在網絡中管理。信息化管理可以提高工作效率又可以節約資源,其優點主要因為用戶可以在權限范圍內實現遠程管理,但遠程管理最大的弊端是安全問題,有的機構因為不同數據在不同的系統中進行管理,安全級別不同,對每個用戶的管理權限不同,用戶必須通過賬號和密碼對系統進行不同權限級別的訪問,使得用戶必須記多個賬號和密碼,為用戶和管理帶來極大地不便,甚至有的機構為了避免高安全級別的數據出現安全問題,采取屏蔽部分功能不允許外部訪問的方式,這樣極大的削弱了信息化管理的優勢,為了解決這類對用戶分散管理的問題,本文認為應該建立統一身份認證平臺,對用戶認證及各系統使用權限信息進行整合,實現統一存儲、統一管理,統一授權的用戶單點登錄身份認證方式。
實現跨平臺、跨數據庫、甚至跨網段的各系統統一身份認證,目前比較常用也是比較有效的解決方案就是基于LDAP(Lightweight Directory Access Protocol 輕量級目錄訪問協議)協議的單點登錄機制,可以對多個應用系統身份認證及訪問控制進行整合,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。用戶只需要通過一個賬號和密碼就可以實現,但是賬號和密碼很容易泄露,對整個系統,特別是安全級別要求高的系統具有一定的安全隱患,為了解決這個問題,本系統結合數據證書認證技術,對高安全級別用戶采取賬號和證書雙重身份認證機制。
由于校園網信息管理系統應用功能繁雜,訪問用戶比較多,并且存在明顯的權限劃分,因此根據安全級別的不可以將所有用戶權限分為兩大類:①一般系統使用者權限;②高級系統使用者權限。
一般系統使用者權限是指可以瀏覽及管理系統中公開的或安全級別不高的信息的訪問權限。比如學生對學校的通知及個人相關信息進行查詢及簡單的錄入和修改權限,或者一般教師對個人及相關業務信息進行錄入和修改權限。
高級系統使用者權限是指可以管理及維護個人業務相關或權限范圍內其它用戶的相關信息。
需要獲取一般系統使用者權限的用戶只需通過賬號和密碼統一身份認證,對于需要獲取高級使用權限的用戶在賬戶和密碼認證的同時還需要提交具有高級使用權限的數字證書。
該系統身份認證過程比較簡單,不同權限用戶如果只提交賬號和密碼那么只能獲得一般系統使用者相應的權限,只有提交具有高級權限的證書才能獲取高級系統使用者權限,對系統的敏感信息進行管理。整個過程分為三大模塊,如圖1所示。

圖1 統一身份認證系統結構
(1)認證及訪問控制信息管理模塊
LDAP是一種可擴展的目錄訪問協議,是按照樹狀模式組織信息(如圖 2所示),是實現信息管理和服務接口的一種方式,實際上是一種特殊的數據庫系統,目錄一般用來存儲相對靜態的數據,能夠提供比關系數據庫更快速的數據讀取、瀏覽和搜索操作,對數據的修改也僅是使用簡單鎖定機制來實現。目錄以屬性的形式存儲及管理信息,并支持精細復雜的過濾能力。一個應用程序如果要訪問目錄中的信息,它不需要直接訪問目錄,而是通過一系列API函數來產生請求并傳送給目錄服務器。目錄服務器則根據請求查詢目錄,并把結果返回給發起調用的進程。

圖2 目錄樹
(2)統一身份認證管理模塊
LDAP服務是典型的C/S模式,需要讀寫目錄信息的應用并不直接訪問目錄,它通過調用API函數訪問目錄中的信息對用戶身份進行認證,并將認證結果返回給身份認證管理模塊。當用戶第一次訪問某個應用系統時,因為還沒有登錄,會被引導到認證管理系統中進行登錄,如果用戶通過賬號和密碼登錄,只能獲取一般用戶權限,要想獲取高級用戶權限必須提交相應的數字證書,根據用戶提供的登錄信息,認證系統進行身份效驗,如果通過校驗,相應的產生一個認證憑據(ticket),用戶訪問其它應用時就會將這個憑據帶上,作為該用戶的認證憑據,應用系統接受到請求之后會把憑據送到認證管理系統進行校驗,檢查其合法性,如果通過校驗,用戶就可以在不用再次登錄的情況下訪問其它應用系統。
(3)用戶及認證信息管理模塊
該模塊提供用戶對個人基本信息及認證信息進行管理及維護,包括登錄密碼的修改,數字證書的申請、恢復和作廢處理,提供管理員對用戶信息及訪問控制權限進行管理和維護。
用戶選擇一個證書之后,服務器會從用戶證書中提取一些資料,核對證書是否是本系統頒發的,是否有效,之后繼續進行身份鑒別和權限控制管理:
//獲取客戶證書序列號
string usercertsn=Request.ClientCertificate["SerialNumber"];
//獲取客戶證書全部內容(二進制代碼)
string usercertbinary=Request.ClientCertificate["Certificate"];
//獲取客戶證書有效期結束時間
string dateuntilstr= Request.ClientCertificate["ValidUntil"];
DateTime dateuntil=Convert.ToDateTime (dateuntilstr);
//審核證書是否有效
if(todatet<dateuntil)
{ //根據以上信息獲取高級用戶權限的有效性及權限列表}
系統中以XML樹狀模式存儲各部門及具有不同權限的各用戶認證信息(賬號、密碼和證書序列號),通過對該模式數據的查詢,返回用戶訪問控制序列碼,并寫入用戶憑證當中:
string accessed;//訪問控制碼
Session[“uid’]=user.UName;
Session[“upw”]=user.UType;
try{
accessed =checkuser(Session[“uid’], Session[“upw”]) ;//驗證一般用戶權限身份接口
accessed+=checkcert(user.certsn); 驗證高級用戶權限身份接口
return accessed;
}
catch{
//用戶賬號/密碼不正確
}
系統身份認證和權限控制是實現系統安全最基本、最有效的方式之一,因此大部分系統都要對用戶的合法身份進行認證,用戶面臨訪問不同系統要進行多次身份認證的問題,于是統一身份認證思想應運而生,實現統一身份認證可以通過很多種方法實現,但基于LDAP協議的目錄服務為實現統一身份認證提供了更快速有效的信息管理機制,通過一次身份認證之后,在該次訪問過程中再訪問其它應用程序將不必再次輸入登錄信息,也可獲得合法的訪問權限。其中數字證書的引入可以實現認證信息的不可偽造性,特別和賬戶密碼結合提高了系統的安全性。
[1]張沖,武超,楊要科.校園網統一身份認證系統的設計與實現.中原工學院學報.2008.
[2]張先紅.數字簽名原理及技術.北京:機械工業出版社.2004.
[3]賀超波,陳啟買,歐陽輝.數字化校園門戶平臺統一身份認證的實現.研究與發展.2008.
[4]劉幺和,林宇航,宋庭新.基于 SSO 技術的信息門戶網站構建.軟件導刊.2009.