就高職院校數(shù)字校園建設(shè)這一專題,“Moehoo猛虎”已將推出了如下三篇文章:
(1)《論數(shù)字校園的頂層設(shè)計 — 高職院校篇》
(2)《高職院校的信息化建設(shè) — 網(wǎng)絡(luò)建設(shè)的歷史沿襲》
(3)《高職院校信息化 — 校園網(wǎng)建設(shè)之痛與變局》
在《論數(shù)字校園的頂層設(shè)計 — 高職院校篇》一文中,“Moehoo猛虎”曾明確提出:
應(yīng)用系統(tǒng)的集成,是頂層設(shè)計的技術(shù)架構(gòu)思路的重要內(nèi)容。而應(yīng)用系統(tǒng)的集成,是由3個功能系統(tǒng)協(xié)同工作而得以實現(xiàn)的,即:校園統(tǒng)一身份認(rèn)證系統(tǒng)、校園統(tǒng)一信息門戶系統(tǒng)、校園統(tǒng)一公共數(shù)據(jù)系統(tǒng)。
這三個系統(tǒng)是數(shù)字校園建設(shè)的基礎(chǔ)內(nèi)容之一,在很大程度上決定了數(shù)字校園建設(shè)的成敗。而為了建設(shè)校園統(tǒng)一信息門戶系統(tǒng),必須滿足相應(yīng)的基礎(chǔ)前提和支撐:建立完備的校園統(tǒng)一身份認(rèn)證系統(tǒng)。
統(tǒng)一身份認(rèn)證系統(tǒng)提供的服務(wù)功能是:
Ⅰ. 身份認(rèn)證和統(tǒng)一管理功能:為每一用戶提供統(tǒng)一的電子身份,對數(shù)字校園用戶進(jìn)行集中統(tǒng)一的管理;
Ⅱ. 單點登錄(即SSO,Single Sign-On)功能:用戶只需一次登錄,就可直接訪問已經(jīng)授權(quán)的任何校園應(yīng)用系統(tǒng);
Ⅲ. 雙向認(rèn)證功能:在安全的認(rèn)證協(xié)議支持下,在服務(wù)器和用戶端之間實現(xiàn)雙向認(rèn)證。
簡而言之,校園統(tǒng)一身份認(rèn)證系統(tǒng)的功能是:在數(shù)字校園中實現(xiàn)單點登錄功能,給所有校園應(yīng)用系統(tǒng)提供全局統(tǒng)一的用戶認(rèn)證和用戶管理等功能。
身份認(rèn)證系統(tǒng)的關(guān)鍵意義
從應(yīng)用系統(tǒng)的視角來看,用戶登錄身份認(rèn)證系統(tǒng)是具有關(guān)鍵意義的,這是指:
(1)首要意義在于提供了現(xiàn)實世界中用戶的身份認(rèn)證信息,驗證了現(xiàn)實世界中的用戶與應(yīng)用系統(tǒng)中的賬戶之間的映射關(guān)系。雖然不同的應(yīng)用系統(tǒng)有各自的功能實現(xiàn)領(lǐng)域,但是,在資源存取和資源配置的決策上,都是通過身份認(rèn)證這一核心功能才得以實現(xiàn)的。
(2)其次,身份認(rèn)證系統(tǒng)的審核日志會記錄相關(guān)的安全風(fēng)險信息、用戶身份認(rèn)證信息,對保障應(yīng)用系統(tǒng)的安全性具有重要作用。
身份認(rèn)證系統(tǒng)的基本方法和實現(xiàn)要素
身份,是指客觀世界中特定用戶的唯一實體信息,這種實體信息在計算機(jī)應(yīng)用領(lǐng)域同樣是一種重要的信息資源。
認(rèn)證,指的是以權(quán)威的手段對用戶的身份信息加以驗證。
身份認(rèn)證系統(tǒng)的主要功能就是驗證用戶身份信息的準(zhǔn)確有效性,杜絕沒有經(jīng)過授權(quán)的非法資源訪問行為。
一、身份認(rèn)證的基本方法
從廣義的角度來看,身份認(rèn)證的基本方法有三類:
(1)驗證用戶的關(guān)鍵個人信息
比如,驗證用戶的賬號和相應(yīng)密碼,驗證問題和回答的完整匹配。眾所周知,這種方法,在軟件應(yīng)用系統(tǒng)中得到了極其廣泛的應(yīng)用。
(2)驗證用戶的唯一性私人物品
比如,身份證、銀行卡、鑰匙等物品。這種方法,在現(xiàn)實世界里常見,而在IT應(yīng)用系統(tǒng)中,也有相應(yīng)的等同物,即:由權(quán)威的CA機(jī)構(gòu)(Certificate Authority,數(shù)字證書認(rèn)證機(jī)構(gòu))頒發(fā)的數(shù)字證書。
X.509證書是事實上的數(shù)字證書標(biāo)準(zhǔn)格式,在絕大多數(shù)網(wǎng)絡(luò)安全應(yīng)用中得到了廣泛的使用,X.509使用數(shù)字證書對身份驗證的方法有3類,即:雙向認(rèn)證、單向認(rèn)證、三向認(rèn)證。由此,統(tǒng)一身份認(rèn)證系統(tǒng)的雙向認(rèn)證功能得以實現(xiàn),即:在安全的認(rèn)證協(xié)議支持下,在服務(wù)器和用戶端之間實現(xiàn)雙向認(rèn)證。具體實現(xiàn)方法,見本文最后一節(jié)所述。
(3)驗證用戶的唯一性生理特征信息
比如,指紋識別、視網(wǎng)膜識別、人臉識別等。
二、身份認(rèn)證的實現(xiàn)要素
完全通過訪問控制系統(tǒng)去實現(xiàn)身份認(rèn)證是不可行的,一個完備的身份認(rèn)證系統(tǒng)必須有效地集成如下的實現(xiàn)要素。
(1)身份驗證功能
標(biāo)識和鑒別登錄用戶的身份,以此,確保信息和數(shù)據(jù)來源的合法性,這也是身份認(rèn)證系統(tǒng)的核心功能。
(2)數(shù)據(jù)的完整性
在信息和數(shù)據(jù)的傳輸和存儲過程之中,確保其不會被未授權(quán)地篡改,或者,在其遭遇篡改后能被迅速地發(fā)現(xiàn)并處理。
(3)數(shù)據(jù)的有效性(可用性)
經(jīng)過授權(quán)的實體可以按預(yù)先的權(quán)限設(shè)置而訪問數(shù)據(jù)。
(4)數(shù)據(jù)的保密性
只有經(jīng)過授權(quán)的實體才可以訪問相關(guān)數(shù)據(jù)。
(5)不可抵賴性(不可否認(rèn)性)
確保信息和數(shù)據(jù)的制造者和發(fā)送者無法拒絕其曾執(zhí)行的行為。
統(tǒng)一身份認(rèn)證系統(tǒng)的概念
統(tǒng)一身份認(rèn)證系統(tǒng),是一種用戶身份認(rèn)證集成管理系統(tǒng),對用戶進(jìn)行身份認(rèn)證、提供身份認(rèn)證統(tǒng)一通行證和相應(yīng)的授權(quán),以此,建立所有關(guān)聯(lián)應(yīng)用系統(tǒng)的統(tǒng)一身份認(rèn)證管理,確保用戶信息認(rèn)證的真實有效。
各關(guān)聯(lián)應(yīng)用系統(tǒng)都有相應(yīng)的保存和訪問權(quán)限管理功能,統(tǒng)一身份認(rèn)證服務(wù)器和用戶信息統(tǒng)一數(shù)據(jù)庫協(xié)同工作,統(tǒng)一管理各子系統(tǒng)的用戶身份認(rèn)證。
在集成用戶身份認(rèn)證方面,統(tǒng)一身份認(rèn)證系統(tǒng)有一系列規(guī)范的客戶端,可以采用多種認(rèn)證手段,比如:賬號密碼認(rèn)證、數(shù)字證書認(rèn)證、一卡通認(rèn)證等。不同級別的用戶有各自不同的安全等級,統(tǒng)一身份認(rèn)證系統(tǒng)會采取相應(yīng)的安全保障措施,比如,密保措施、數(shù)字證書驗證等。
在集成應(yīng)用系統(tǒng)功能方面,統(tǒng)一身份認(rèn)證系統(tǒng)提供唯一的操作接口,而不同的應(yīng)用系統(tǒng)則提供各自的操作接口,一榫一卯,各關(guān)聯(lián)應(yīng)用系統(tǒng)就與統(tǒng)一身份認(rèn)證系統(tǒng)集成在一起了,在緊密集成結(jié)構(gòu)的保障下,各關(guān)聯(lián)應(yīng)用系統(tǒng)的安全性得到了充分的保障。
統(tǒng)一身份認(rèn)證系統(tǒng)的工作流程
統(tǒng)一身份認(rèn)證系統(tǒng)的主要功能是:
(1)統(tǒng)一管理用戶的身份驗證
避免在多個應(yīng)用系統(tǒng)中反復(fù)登錄,創(chuàng)建統(tǒng)一的標(biāo)準(zhǔn)客戶端登錄操作界面,創(chuàng)建統(tǒng)一身份認(rèn)證系統(tǒng)的全局賬號與既有的各關(guān)聯(lián)應(yīng)用系統(tǒng)的局域賬號之間的映射關(guān)系,實現(xiàn)各關(guān)聯(lián)應(yīng)用系統(tǒng)的統(tǒng)一身份認(rèn)證。
(2)統(tǒng)一管理用戶對各關(guān)聯(lián)應(yīng)用系統(tǒng)的訪問權(quán)限。
統(tǒng)一身份認(rèn)證系統(tǒng)的系統(tǒng)架構(gòu)及其關(guān)鍵工作流程如下圖所示:
如上圖所示,說明如下:
(1)用戶提交訪問某個關(guān)聯(lián)應(yīng)用系統(tǒng)的請求;
(2)使用應(yīng)用認(rèn)證接口,通過安全的傳輸渠道,應(yīng)用系統(tǒng)將用戶的認(rèn)證信息傳遞至統(tǒng)一身份認(rèn)證系統(tǒng),進(jìn)行用戶身份認(rèn)證;
(3)用戶信息經(jīng)過統(tǒng)一身份認(rèn)證系統(tǒng)的驗證后,將生成一系列的具有唯一性的用戶端認(rèn)證信息,據(jù)此,用戶獲取對所有關(guān)聯(lián)應(yīng)用系統(tǒng)的訪問權(quán)。
統(tǒng)一身份認(rèn)證系統(tǒng)的工作模式
在一個已有若干應(yīng)用系統(tǒng)的環(huán)境中建立統(tǒng)一身份認(rèn)證系統(tǒng),不僅要考慮將既有應(yīng)用系統(tǒng)納入,還要能夠完成新建應(yīng)用系統(tǒng)的用戶身份認(rèn)證。
為此,統(tǒng)一身份認(rèn)證系統(tǒng)必須具備多種工作模式,以滿足復(fù)雜應(yīng)用環(huán)境中的客觀需要。
統(tǒng)一身份認(rèn)證系統(tǒng)的工作模式主要有三類,分別是:身份認(rèn)證服務(wù)模式、統(tǒng)一認(rèn)證服務(wù)模式、代理服務(wù)模式。
一、身份認(rèn)證服務(wù)模式
在高職院校的數(shù)字校園建設(shè)中,在統(tǒng)一身份認(rèn)證系統(tǒng)和統(tǒng)一信息門戶系統(tǒng)已經(jīng)建立的情形下:
(1)新建的應(yīng)用系統(tǒng)可以完全依托于統(tǒng)一身份認(rèn)證系統(tǒng)實現(xiàn)用戶身份認(rèn)證功能,無需配置專門的用戶認(rèn)證系統(tǒng)。這時候,新建應(yīng)用系統(tǒng)的用戶帳戶就是統(tǒng)一身份認(rèn)證系統(tǒng)的全局賬號;
(2)對既有應(yīng)用系統(tǒng)而言,其本身原有的局域賬號,可與統(tǒng)一身份認(rèn)證系統(tǒng)的全局賬號之間建立映射關(guān)系。
在這種工作模式下,統(tǒng)一身份認(rèn)證系統(tǒng)的運作形式是:應(yīng)用系統(tǒng)的身份認(rèn)證功能模塊。其具體工作流程如下圖所示:
對上圖所示的工作流程說明如下:
(1)用戶在統(tǒng)一身份認(rèn)證系統(tǒng)中注冊用戶名并設(shè)定密碼(其他的授權(quán)方式還有:按學(xué)校的管理制度申請數(shù)字證書或者校園卡),然后,以相應(yīng)的授權(quán)方式登錄應(yīng)用系統(tǒng);
(2)應(yīng)用系統(tǒng)將用戶登錄信息轉(zhuǎn)發(fā)給統(tǒng)一身份認(rèn)證服務(wù);
(3)統(tǒng)一身份認(rèn)證服務(wù)執(zhí)行驗證操作,即:在注冊庫中,驗證發(fā)送用戶登錄信息的應(yīng)用系統(tǒng)是否已經(jīng)注冊,驗證用戶登錄信息與注冊庫中的信息是否一致,在獲取驗證結(jié)果后,向應(yīng)用系統(tǒng)發(fā)出認(rèn)證響應(yīng)信息。如果用戶身份認(rèn)證成功,應(yīng)用系統(tǒng)向用戶發(fā)出訪問令牌,用戶遂得以訪問應(yīng)用系統(tǒng)。
二、統(tǒng)一認(rèn)證服務(wù)模式
統(tǒng)一身份認(rèn)證系統(tǒng)的核心服務(wù)模式是統(tǒng)一認(rèn)證服務(wù)模式。其具體工作流程如下圖所示:
對上圖所示的工作流程說明如下:
(1)用戶在統(tǒng)一身份認(rèn)證系統(tǒng)中注冊用戶名并設(shè)定密碼(其他的授權(quán)方式還有:按學(xué)校的管理制度申請數(shù)字證書或者校園卡),然后,以相應(yīng)的授權(quán)方式登錄統(tǒng)一身份認(rèn)證系統(tǒng);
(2)在登錄信息被成功認(rèn)證后,統(tǒng)一身份認(rèn)證系統(tǒng)將訪問令牌返回給用戶。使用這個訪問令牌,用戶向關(guān)聯(lián)應(yīng)用系統(tǒng)提交訪問請求;
(3)就此訪問令牌的合法有效性,關(guān)聯(lián)應(yīng)用系統(tǒng)向統(tǒng)一身份認(rèn)證系統(tǒng)提交驗證請求。收到驗證結(jié)果后,如果確認(rèn)訪問令牌合法有效,關(guān)聯(lián)應(yīng)用系統(tǒng)接受訪問請求并將相應(yīng)的訪問結(jié)果返回給用戶。
三、代理服務(wù)模式
當(dāng)統(tǒng)一身份認(rèn)證系統(tǒng)處于代理服務(wù)模式時,關(guān)聯(lián)應(yīng)用系統(tǒng)的接入訪問和相應(yīng)的訪問結(jié)果均由其代理,由此,為關(guān)聯(lián)應(yīng)用系統(tǒng)提供一個更為安全的運行環(huán)境。其具體工作流程如下圖所示:
對上圖所示的工作流程說明如下:
(1)用戶在統(tǒng)一身份認(rèn)證系統(tǒng)中注冊用戶名并設(shè)定密碼(其他的授權(quán)方式還有:按學(xué)校的管理制度申請數(shù)字證書或者校園卡),然后,以相應(yīng)的授權(quán)方式登錄統(tǒng)一身份認(rèn)證系統(tǒng);
(2)在登錄信息被成功認(rèn)證后,統(tǒng)一身份認(rèn)證系統(tǒng)將訪問令牌返回給用戶。使用這個訪問令牌,用戶并不直接向應(yīng)用系統(tǒng)發(fā)起訪問請求,而是向代理(即統(tǒng)一身份認(rèn)證系統(tǒng))提交其對關(guān)聯(lián)應(yīng)用系統(tǒng)的訪問請求;
(3)統(tǒng)一身份認(rèn)證系統(tǒng)向注冊庫發(fā)起查詢請求,從查詢結(jié)果中確認(rèn)應(yīng)用系統(tǒng)是否已經(jīng)注冊,進(jìn)而獲取應(yīng)用系統(tǒng)的訪問入口。再將用戶的訪問請求由代理轉(zhuǎn)發(fā)給應(yīng)用系統(tǒng),并將訪問結(jié)果由代理返回給用戶。
單點登錄技術(shù)原理
就本質(zhì)而言,單點登錄的技術(shù)原理就是:在不同應(yīng)用系統(tǒng)之間傳遞和共享信息系統(tǒng)安全上下文或者安全通行票據(jù)。
這是學(xué)術(shù)性的表述方式,然而,單點登錄技術(shù)原理是很容易理解的,換一種說法,那就是:當(dāng)用戶訪問某一個應(yīng)用系統(tǒng)時,會由一個唯一的認(rèn)證服務(wù)對用戶身份進(jìn)行驗證,在用戶身份得到成功驗證后,就會獲得一個數(shù)字通行證。而當(dāng)這個用戶訪問其他應(yīng)用系統(tǒng)時,就可以直接憑此數(shù)字通行證獲得訪問權(quán)。
其實,在現(xiàn)實世界中也可以找到與單點登錄類似的實例,比如,在某個城市申請辦理的城市一卡通,在其他城市也可以使用。
一個典型的SSO技術(shù)原理實現(xiàn)圖如下所示:
如上圖所示,當(dāng)使用者第一次發(fā)起對應(yīng)用系統(tǒng)1的訪問請求時,由于尚未登錄,所以還沒有攜帶安全通行票據(jù)(Ticket)。在這種情況下,用戶會被引入至統(tǒng)一身份認(rèn)證系統(tǒng)進(jìn)行認(rèn)證,即:輸入用戶名或密碼等登錄信息。接著,統(tǒng)一身份認(rèn)證系統(tǒng)會將這些登錄信息與用戶信息庫進(jìn)行比對,如果驗證成功,用戶端會接收到返回的安全通行票據(jù)(Ticket)。
自此以后,當(dāng)用戶對其他關(guān)聯(lián)應(yīng)用系統(tǒng)(應(yīng)用系統(tǒng)2,......,應(yīng)用系統(tǒng)n)發(fā)起訪問請求時,都會將安全通行票據(jù)(Ticket)提交給統(tǒng)一身份認(rèn)證系統(tǒng)用于驗證,如果校驗結(jié)果是合法有效的,用戶就不需要再次執(zhí)行登錄操作,直接就能獲得對其他關(guān)聯(lián)應(yīng)用系統(tǒng)的訪問權(quán)限。
需要指出的是, 在以上所述的過程中,各關(guān)聯(lián)應(yīng)用系統(tǒng)并不對用戶認(rèn)證信息等數(shù)據(jù)進(jìn)行驗證,它們只與統(tǒng)一身份認(rèn)證系統(tǒng)進(jìn)行通信。實際上,可以將統(tǒng)一身份認(rèn)證系統(tǒng)和各關(guān)聯(lián)應(yīng)用系統(tǒng)之間的通信模式理解為“服務(wù)器—客戶端”模式,即:統(tǒng)一身份認(rèn)證系統(tǒng)是服務(wù)器端,為各關(guān)聯(lián)應(yīng)用系統(tǒng)提供安全通行票據(jù)(Ticket);各關(guān)聯(lián)應(yīng)用系統(tǒng)是客戶端,能識別和提取用戶訪問請求中攜帶的安全通行票據(jù)(Ticket),進(jìn)而,將其傳遞給統(tǒng)一身份認(rèn)證系統(tǒng)以驗證有效性,籍此,實現(xiàn)統(tǒng)一身份認(rèn)證系統(tǒng)的單點登錄功能。
雙向認(rèn)證的實現(xiàn)流程
統(tǒng)一身份認(rèn)證系統(tǒng)的第三個重要功能是雙向認(rèn)證功能。如前所述,使用證書服務(wù),可以實現(xiàn)服務(wù)器和用戶端的雙向認(rèn)證。
通常,在用戶端要求訪問一些保密資源時,會采用雙向認(rèn)證的方式以確保資源訪問的安全可行,即:在安全的認(rèn)證協(xié)議(通常是SSL協(xié)議, 即:Secure Socket Layer協(xié)議)支持之下,服務(wù)器和用戶端對彼此提供的數(shù)字證書加以驗證,完成相互認(rèn)證,由此,雙方都確認(rèn)對方的可信真實身份。
從技術(shù)角度來看,用戶端(Web瀏覽器或者客戶端應(yīng)用)和服務(wù)器(Web站點或者服務(wù)器應(yīng)用)之間的雙向認(rèn)證,就是指通過驗證由權(quán)威的數(shù)字證書認(rèn)證機(jī)構(gòu)頒發(fā)的數(shù)字證書,使得:(1)服務(wù)器的數(shù)字證書在用戶端上得到認(rèn)證;(2)用戶端的數(shù)字證書也在服務(wù)器上得到認(rèn)證。
顯然,由于雙向認(rèn)證是基于數(shù)字證書才得以實施的,CA機(jī)構(gòu)是整個流程中極為重要的部分。從應(yīng)用層的視角看,基于數(shù)字證書的認(rèn)證及建立加密通道的過程如下圖所示(圖片是高清的,但是受限于移動終端的屏幕尺寸,如要查看細(xì)節(jié),可點擊放大查看):
(1)用戶端要求訪問保密資源;
(2)服務(wù)器收到訪問請求后,將自己的數(shù)字證書(Server.cer)提供給用戶端;
(3)用戶端驗證服務(wù)器證書的有效性;
(4)如果服務(wù)器證書被成功驗證,那么,用戶端將自己的數(shù)字證書(Client.cer)發(fā)送到服務(wù)器;
(5)服務(wù)器驗證用戶端數(shù)字證書的有效性,以確認(rèn)用戶端的合法身份;
(6)如果用戶端的數(shù)字證書確認(rèn)有效,服務(wù)器將相應(yīng)的訪問權(quán)限賦予用戶端,由此,用戶端獲得了保密資源的訪問權(quán)。
至此,“Moehoo猛虎”對校園統(tǒng)一身份認(rèn)證系統(tǒng)的三大功能(即:身份認(rèn)證和統(tǒng)一管理、 單點登錄、雙向認(rèn)證)完成了概觀性的描述。由于本文的撰寫目的是為數(shù)字校園建設(shè)的決策層人士提供有效的務(wù)實參考,因此,行文之時,不僅在語言上注意了平實易懂,而且,為了達(dá)到更加直觀的效果,更專門繪制了若干流程圖和原理圖。
長期以來,校園統(tǒng)一身份認(rèn)證系統(tǒng)若有似無地蒙著一層神秘的面紗。“Moehoo猛虎”期望,本文能夠揭開那神秘面紗的一角,為各類學(xué)校的數(shù)字校園建設(shè)思路的拓展作出或許微薄卻是務(wù)實的貢獻(xiàn)。