鄭 凱,聶瑞華,梁卓明,劉學(xué)文
(1.華南師范大學(xué) 網(wǎng)絡(luò)中心,廣東 廣州 510631;2.廣州北大明天資源科技發(fā)展有限公司,廣東 廣州 510632)
基于用戶映射關(guān)系的數(shù)字校園單點(diǎn)登錄的實(shí)現(xiàn)*
鄭 凱1,聶瑞華1,梁卓明1,劉學(xué)文2
(1.華南師范大學(xué) 網(wǎng)絡(luò)中心,廣東 廣州 510631;2.廣州北大明天資源科技發(fā)展有限公司,廣東 廣州 510632)
高校校園網(wǎng)多應(yīng)用系統(tǒng)的環(huán)境下,各應(yīng)用系統(tǒng)均有獨(dú)立的身份驗(yàn)證機(jī)制,給用戶帶來不便。本文提出的數(shù)字校園單點(diǎn)登錄機(jī)制,解決了數(shù)字校園多應(yīng)用系統(tǒng)的統(tǒng)一身份驗(yàn)證問題。
單點(diǎn)登錄;Passport服務(wù)器;驗(yàn)證票據(jù);Cookie
單點(diǎn)登錄提供一個(gè)用戶管理的統(tǒng)一接口,當(dāng)用戶要訪問多個(gè)需要認(rèn)證的應(yīng)用系統(tǒng)時(shí),只需進(jìn)行一次登錄和身份認(rèn)證,就可以對所有被授權(quán)的應(yīng)用系統(tǒng)直接訪問,不必重新登錄。[1]本文結(jié)合數(shù)字校園建設(shè)實(shí)踐,提出一套基于應(yīng)用系統(tǒng)間用戶映射關(guān)系的單點(diǎn)登錄機(jī)制,并加以實(shí)現(xiàn)。
1.系統(tǒng)結(jié)構(gòu)
本文提出的單點(diǎn)登錄系統(tǒng)如圖1所示,主要有Passport服務(wù)器、多個(gè)成員應(yīng)用系統(tǒng)和維護(hù)用戶映射關(guān)系的LDAP目錄服務(wù)器組成。[2]Passport服務(wù)器是單點(diǎn)登錄系統(tǒng)的處理核心,它主要完成映射關(guān)系管理、登錄管理、身份驗(yàn)證管理、URL轉(zhuǎn)發(fā)和Cookie管理等工作。
圖1單點(diǎn)登錄系統(tǒng)的系統(tǒng)結(jié)構(gòu)
2.接口和程序定義
為完成登錄驗(yàn)證和應(yīng)用漫游,定義Passport服務(wù)器提供的接口和程序如下:
(1)登錄管理接口KeyManagerService
提供getLoginURL、getAuthURL等方法。getLoginURL方法獲取用戶登錄信息,返回含有用戶登錄信息和登錄程序地址的URL字符串;getAuthURL獲取用戶目前的登錄狀態(tài),返回含有登錄狀態(tài)和校驗(yàn)程序地址的URL字符串。
(2)用戶管理接口UserManagerService
提供addMemberSysUser、deleteMemberSysUser、update-MemberSysUser、getLDAPUserPassword、getUserInfo、change-MemberUserPWD等方法。與目錄服務(wù)器進(jìn)行交互,實(shí)現(xiàn)增加、刪除、修改和查詢用戶在應(yīng)用系統(tǒng)中的帳號、密碼等操作,維護(hù)用戶映射關(guān)系表。
(3)信息校驗(yàn)接口SecurityPolicy
提供validateTicket、createKey、decode等方法。validate-Ticket方法檢驗(yàn)加密信息和票據(jù)的合法性和時(shí)效性;createKey方法獲取用戶在漫游目標(biāo)系統(tǒng)中的登錄信息,返回含有登錄信息的URL字符串。
(4)登錄程序LoginServlet
提供saveTicket等方法。saveTicket方法返回一個(gè)含有加密驗(yàn)證票據(jù)的Cookie。
(5)校驗(yàn)程序AuthenServlet
提供getTicket等方法。getTicket方法讀取Cookie中的加密驗(yàn)證票據(jù)。
用戶管理機(jī)制為需要實(shí)現(xiàn)應(yīng)用漫游的用戶配置一個(gè)統(tǒng)一的登錄帳號作為單點(diǎn)登錄帳號,單點(diǎn)登錄帳號與用戶在其他應(yīng)用系統(tǒng)中的帳號形成映射關(guān)系。系統(tǒng)通過LDAP Schema設(shè)計(jì)的目錄樹反映這種映射關(guān)系,多個(gè)應(yīng)用系統(tǒng)間的用戶映射關(guān)系如圖2所示。
圖2單點(diǎn)登錄系統(tǒng)的用戶映射關(guān)系
用戶映射關(guān)系可以通過應(yīng)用系統(tǒng)數(shù)據(jù)庫中的用戶信息與數(shù)字校園數(shù)據(jù)中心的人事基本信息相關(guān)聯(lián)得到。在集成了多個(gè)應(yīng)用系統(tǒng)的單點(diǎn)登錄系統(tǒng)中,要形成完整的用戶映射關(guān)系,需要進(jìn)行多次信息關(guān)聯(lián),導(dǎo)致系統(tǒng)的復(fù)雜度高,可擴(kuò)展性不強(qiáng)。本文的設(shè)計(jì)中Passport服務(wù)器提供一個(gè)用戶界面,如圖3所示。用戶在該界面中手動輸入具有訪問權(quán)限應(yīng)用系統(tǒng)的帳號和密碼,自主選擇哪些應(yīng)用系統(tǒng)實(shí)現(xiàn)單點(diǎn)登錄的信息關(guān)聯(lián),具有較好的靈活性和安全性。
圖3管理單點(diǎn)登錄用戶映射關(guān)系的用戶界面
1.登錄驗(yàn)證
登錄驗(yàn)證是指用戶首次登錄某成員應(yīng)用系統(tǒng)時(shí)的驗(yàn)證和漫游授權(quán)過程。當(dāng)用戶登錄請求通過成員應(yīng)用系統(tǒng)驗(yàn)證后,由該系統(tǒng)負(fù)責(zé)向Passport服務(wù)器提交帳號、密碼和登錄時(shí)間等登錄信息,Passport查詢LDAP服務(wù)器中的用戶映射表,身份驗(yàn)證成功后,創(chuàng)建一個(gè)含有驗(yàn)證票據(jù)的Cookie返回給用戶,同時(shí)URL重定向到用戶請求頁面。獲得驗(yàn)證票據(jù)的用戶在有效時(shí)間內(nèi)具備了應(yīng)用系統(tǒng)間漫游的能力。一個(gè)完整的登錄驗(yàn)證過程如圖4所示。
(1)用戶在任何一個(gè)成員應(yīng)用系統(tǒng)進(jìn)行登錄,應(yīng)用系統(tǒng)按本系統(tǒng)的驗(yàn)證機(jī)制驗(yàn)證用戶登錄請求;
圖4登錄驗(yàn)證過程
(2)驗(yàn)證通過后,應(yīng)用程序調(diào)用 Passport服務(wù)器KeyManagerService接口的getLoginURL方法將成員應(yīng)用系統(tǒng)ID、登錄帳號、密碼和登錄時(shí)間等驗(yàn)證信息組合創(chuàng)建加密信息,并將加密信息和訪問LoginServlet地址一起,構(gòu)建成一個(gè)URL字符串;
(3)根據(jù)包含加密信息和 LoginServlet地址的URL字符串登錄Passport服務(wù)器的LoginServlet程序;
(4)LoginServlet調(diào)用SecurityPolicy接口的validate-Ticket方法解密信息,驗(yàn)證成員系統(tǒng)發(fā)送的信息是否正確;
(5)如果登錄信息合法,LoginServlet調(diào)用saveTicket方法為用戶請求創(chuàng)建一個(gè)含有加密驗(yàn)證票據(jù)的Cookie,否則,直接URL重定向到應(yīng)用系統(tǒng)的登錄頁面;
(6)URL重定向到應(yīng)用系統(tǒng)用戶登錄后的指定頁面,完成登錄驗(yàn)證。
2.應(yīng)用漫游
應(yīng)用漫游是指獲得Passport服務(wù)器漫游票據(jù)的用戶直接登錄單點(diǎn)登錄系統(tǒng)成員應(yīng)用系統(tǒng)的過程。Passport服務(wù)器驗(yàn)證每次應(yīng)用漫游票據(jù)的合法性和時(shí)效性,通過驗(yàn)證后,取出LDAP目錄服務(wù)器中漫游目標(biāo)系統(tǒng)的登錄帳號、密碼和URL地址等信息直接進(jìn)行登錄。一個(gè)完整的應(yīng)用漫游過程如圖5所示。
圖5應(yīng)用漫游過程
(1)用戶在成員應(yīng)用系統(tǒng)A的頁面上向Passport服務(wù)器提交對成員應(yīng)用系統(tǒng)B的漫游請求;
(2)Passport服務(wù)器調(diào)用AuthenServlet程序的getTicket方法讀取Cookie中保存的驗(yàn)證票據(jù);
(3)AuthenServlet把讀取的票據(jù)發(fā)送給SecurityPolicy接口,SecurityPolicy調(diào)用 decode方法解密票據(jù),調(diào)用validateTicket方法驗(yàn)證票據(jù)的合法性和時(shí)效性;
(4)驗(yàn)證通過后,調(diào)用UserManagerService的getUserInfo方法讀取成員應(yīng)用系統(tǒng)B的系統(tǒng)ID、登錄帳號和密碼;
(5)AuthenServlet調(diào)用CreateKey方法將讀取的成員應(yīng)用系統(tǒng)B的登錄信息組合創(chuàng)建加密信息,并將加密信息和系統(tǒng)登錄頁面的地址一起,構(gòu)建成一個(gè)URL字符串;
(6)根據(jù)URL字符串內(nèi)容重定向到成員應(yīng)用系統(tǒng)B,完成應(yīng)用漫游。
為提高驗(yàn)證票據(jù)的安全性,系統(tǒng)發(fā)放的票據(jù)必須進(jìn)行加密,這樣即使票據(jù)被非法截取,只要加密算法和密鑰強(qiáng)度足夠高,也極難被破解。本文單點(diǎn)登錄票據(jù)的加密采用了3DES加密算法,3DES是DES向AES過渡的加密算法,是DES的一個(gè)更安全的變形,算法的密鑰長度為112位或168位,加密解密運(yùn)算速度較快。[3]
驗(yàn)證票據(jù)包含了一個(gè)標(biāo)識票據(jù)有效期的時(shí)間戳,記錄了用戶發(fā)起登錄驗(yàn)證的時(shí)間,當(dāng)?shù)卿涷?yàn)證后流逝的時(shí)間超過有效期后,為保證票據(jù)的安全性,該票據(jù)將失效。票據(jù)有效期的設(shè)定既要顧及用戶的使用方便,也要考慮票據(jù)的安全性,一般為5分鐘到10分鐘之間。
本文提出的基于用戶映射關(guān)系的數(shù)字校園單點(diǎn)登錄機(jī)制解決了高校多業(yè)務(wù)應(yīng)用系統(tǒng)環(huán)境下的分散登錄問題,以B/S方式實(shí)現(xiàn)了任何成員應(yīng)用系統(tǒng)之間的互訪,成員應(yīng)用系統(tǒng)的結(jié)果返回頁面可以直接嵌入到其他成員應(yīng)用系統(tǒng)(如信息門戶系統(tǒng))的頁面中。系統(tǒng)采用了可靠的加密算法,可以預(yù)防惡意的信息截取和身份偽造等安全隱患。在此單點(diǎn)登錄機(jī)制下,華南師范大學(xué)數(shù)字校園建設(shè)實(shí)現(xiàn)了多達(dá)14個(gè)應(yīng)用系統(tǒng)的統(tǒng)一身份驗(yàn)證和應(yīng)用漫游功能。
由于目前的單點(diǎn)登錄機(jī)制主要依賴于驗(yàn)證服務(wù)器及其提供的接口和程序運(yùn)作,如何提高驗(yàn)證服務(wù)器的健壯性和安全性,需要進(jìn)一步的研究和解決。☉
[1]程宏斌,孫霞.單點(diǎn)登錄技術(shù)研究[J].計(jì)算機(jī)時(shí)代,2004(5): 3-4.
[2]趙明,郭常杰等.基于LDAP的目錄服務(wù)器的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2000,27(5):84-86.
[3]鄭磊,易波.基于單片機(jī)的實(shí)時(shí)3DES加密算法的實(shí)現(xiàn)[J].微處理機(jī),2000(3):40-42.
(編輯:楊馥紅)
TP393.08
A
1673-8454(2010)15-0038-03
華南師范大學(xué)“211工程”項(xiàng)目支持。