徐 建 宗 銳 寇 贇 羅亞軍 白娟娟
(1.陜西機電職業(yè)技術(shù)學(xué)院科研信息處;2.陜西機電職業(yè)技術(shù)學(xué)院人事處;3.陜西機電職業(yè)技術(shù)學(xué)院教務(wù)處)
結(jié)合權(quán)限管理機制,將現(xiàn)有的應(yīng)用系統(tǒng)進行適當(dāng)改造,整合融入到統(tǒng)一身份認證平臺中,依托共享數(shù)據(jù)中心、數(shù)據(jù)接口和數(shù)據(jù)推送技術(shù),實現(xiàn)減少或免登錄進行系統(tǒng)間的數(shù)據(jù)融合對接,達到打破應(yīng)用壁壘、消除數(shù)據(jù)孤島的目的;也可以進行基于統(tǒng)一身份認證技術(shù)的應(yīng)用開發(fā),集成到現(xiàn)有PC平臺及移動APP中,使之更便于用戶使用。
信息化應(yīng)用和推廣是學(xué)校信息化工作的重點,而統(tǒng)一身份認證(IDS)是信息化應(yīng)用的核心。統(tǒng)一身份認證往往和單點登錄(SSO)相提并論,實際上單點登錄只是基礎(chǔ)和表象,統(tǒng)一身份認證才是實質(zhì)和升華,其具備更深層次的用戶管理、分級權(quán)限管理、認證管理、單點登錄等功能,即統(tǒng)一身份認證是包含單點登錄的。本文通過探索研究統(tǒng)一身份認證,一方面多個應(yīng)用可采用此認證系統(tǒng)進行身份認證;另一方面,遵循IDS規(guī)范的應(yīng)用,支持認證狀態(tài)漫游,即在其中一個系統(tǒng)認證成功后,跳轉(zhuǎn)到其他應(yīng)用依然保持其認證狀態(tài)。
筆者所在的學(xué)校已建設(shè)了智慧校園基礎(chǔ)平臺(又稱“三大平臺”,即共享數(shù)據(jù)中心、統(tǒng)一身份認證、統(tǒng)一信息門戶),并融合集成了人事、教務(wù)、學(xué)工等多個應(yīng)用系統(tǒng)及數(shù)據(jù)。其中,統(tǒng)一信息門戶又稱辦事大廳,是將多個應(yīng)用的入口集成到一個門戶平臺上。辦事大廳包含了大量服務(wù)性的應(yīng)用,但還有所欠缺,不能很好的體現(xiàn)學(xué)校個性化的需求。因此,本文對基于統(tǒng)一身份認證的微應(yīng)用開發(fā)與應(yīng)用進行了研究,在ASP.NET+IIS服務(wù)環(huán)境下,先后開發(fā)了賬務(wù)查詢、報名、疫情上報、投票、報修等五個微應(yīng)用并推廣應(yīng)用。
為了保障數(shù)據(jù)安全性,一般不可直接從應(yīng)用后臺數(shù)據(jù)庫或共享數(shù)據(jù)中心中獲取數(shù)據(jù),通常采取建立中間庫的方式,將需要的數(shù)據(jù)授權(quán)后從應(yīng)用后臺數(shù)據(jù)庫獲取,經(jīng)過清洗規(guī)范后寫入到共享數(shù)據(jù)中心并推送到中間庫。共享數(shù)據(jù)中心基于Oracle Database及WebLogic中間件,在中間件環(huán)境下操作數(shù)據(jù)的獲取、清洗、存儲和推送。在開發(fā)設(shè)計微應(yīng)用時,一般新建獨立的數(shù)據(jù)庫服務(wù)器作為中間庫,在Web Logic環(huán)境中建立與中間庫的數(shù)據(jù)連接,直接讀取或讀取后存入到后臺數(shù)據(jù)庫中。經(jīng)應(yīng)用數(shù)據(jù)加工處理后的數(shù)據(jù),必要時也可以讀取到共享數(shù)據(jù)中心,供其他應(yīng)用獲取使用。
例如:賬務(wù)查詢微應(yīng)用,需要從人事系統(tǒng)獲取教職工(工號、姓名、所在部門)信息;報名微應(yīng)用需要從學(xué)生學(xué)籍庫中獲取學(xué)生(學(xué)工號、姓名、班級)信息;疫情上報、投票、報修等微應(yīng)用均需要從人事系統(tǒng)獲取教職工(工號、姓名、所在部門),從學(xué)生學(xué)籍庫中獲取學(xué)生(學(xué)工號、姓名、班級)信息。數(shù)據(jù)獲取后,通過中間件定時推送到中間庫,作為微應(yīng)用的基礎(chǔ)數(shù)據(jù),一方面可以解決數(shù)據(jù)更新問題,比如:新增的教職工或?qū)W生,中間庫可以及時得到更新,不用在微應(yīng)用后臺手動添加或刪除;另一方面,通過中間庫及數(shù)據(jù)推送技術(shù),可以避免直接操作系統(tǒng)的后臺數(shù)據(jù),從而最大限度保障數(shù)據(jù)安全。
應(yīng)用授權(quán)即在統(tǒng)一身份認證平臺建立應(yīng)用,讓統(tǒng)一身份認證平臺與應(yīng)用建立聯(lián)系,允許該應(yīng)用調(diào)用統(tǒng)一身份認證平臺進行認證。平臺探測到認證請求后,校驗該請求的來源地址是否在平臺中備案,從而確定是否響應(yīng)該認證請求。同時,通過平臺對用戶(組)授權(quán),設(shè)定允許那些用戶(組)可以通過統(tǒng)一身份認證并訪問應(yīng)用。應(yīng)用注冊即在統(tǒng)一信息門戶中對應(yīng)用進行注冊,實際上是將應(yīng)用發(fā)布到PC平臺或移動APP,即在統(tǒng)一信息門戶中添加微應(yīng)用的訪問入口,可以便捷的在PC平臺或移動APP中訪問該微應(yīng)用。再結(jié)合CAS認證,即已搭好微應(yīng)用統(tǒng)一身份認證的框架。
基于統(tǒng)一身份認證的微應(yīng)用,在程序設(shè)計階段應(yīng)確保代碼簡潔、功能完備以及美觀高效,除常規(guī)的UI及事件邏輯處理外,還應(yīng)該在CAS認證、母版頁設(shè)計、響應(yīng)式布局及權(quán)限管理等方面進行規(guī)劃實施。
僅應(yīng)用授權(quán)和應(yīng)用注冊,并不能實現(xiàn)身份認證,還應(yīng)該在程序內(nèi)指定認證服務(wù)器地址等參數(shù)。統(tǒng)一身份認證采用CAS結(jié)合LDAP認證方式,CAS在程序設(shè)計中,支持JAVA、PHP、ASP、ASP.NET等常見語言,可獲取到對應(yīng)程序語言的示例Demo。以ASP.NET為例,只用在合適版本的Visual Studio里打開ASP.NET對應(yīng)的Demo,修改Web.config文件
母版頁是嵌套式框架的模板技術(shù),利用母版頁可批量創(chuàng)建多個布局一致效果的頁面,程序公共的部分放在母版頁中,其余在ContentPlaceHolder節(jié)中嵌套生成。以投票微應(yīng)用為例,將CSS設(shè)置、權(quán)限校驗、導(dǎo)航條、底部聯(lián)系方式等放在母版頁中,而系統(tǒng)設(shè)置、投票統(tǒng)計、投票頁面、幫助等頁面,則基于母版頁生成,從而達到簡化代碼和提高程序執(zhí)行效率的目的。
為適用PC瀏覽器和移動APP訪問,微應(yīng)用優(yōu)先采用響應(yīng)式布局,通常采用Bootstrap框架或自定義流式布局,Bootstrap框架功能強大,但會加載JS文件及CSS樣式表,在一定程度會影響訪問速度,故更多采用流式布局。以投票微應(yīng)用為例,因要顯示多個候選者的照片、部門及票數(shù)等信息,外層框架適應(yīng)PC界面,定義其樣式(max-width:1040px;margin:auto)、內(nèi)層DIV定義樣式(width:110px;border:1px solid #EEE;float:left;margin:5px 5px 00; padding:5px 0; text-align :center),從而達到PC界面最大寬度1040DPI,每行可顯示9組內(nèi)層DIV,并自適應(yīng)移動APP瀏覽器的各種屏幕分辨率,從而達到最佳顯示效果。
程序內(nèi)部權(quán)限包含兩個方面:管理權(quán)限和使用權(quán)限。在程序設(shè)計階段,通過查詢驗證登錄賬戶屬性,并給予相應(yīng)程度的權(quán)限,結(jié)合統(tǒng)一身份認證用戶(組)的權(quán)限授予,可以最大限度防止非法登錄及越權(quán)操作的現(xiàn)象發(fā)生。
管理權(quán)限:授權(quán)管理員在后臺進行設(shè)置、數(shù)據(jù)增加/修改/刪除/查詢/下載等,進入管理界面可采取獨立的登錄方式(不使用統(tǒng)一身份認證),也可以在代碼里直接設(shè)定某人(或多人)為管理員,通過統(tǒng)一身份認證后即具備相應(yīng)的模塊的管理權(quán)限,而其他人無權(quán)限操作。
使用權(quán)限:即通過統(tǒng)一身份認證后,可以利用有限的權(quán)限進行相應(yīng)的填報、選擇、提交、查看等操作。
經(jīng)過調(diào)測,相關(guān)微應(yīng)用陸續(xù)上線。賬務(wù)查詢微應(yīng)用,用于教職工自助查詢每月績效工資明細;投票微應(yīng)用,用于每年學(xué)生票選最喜歡的教師、輔導(dǎo)員等;報名微應(yīng)用,用于學(xué)生參加技能大賽、運動會等活動報名;疫情上報微應(yīng)用,用于疫情期間師生上報每天健康狀況,便于相關(guān)部門統(tǒng)計掌握;報修微應(yīng)用,用于學(xué)院水、電、網(wǎng)等日常故障報修。開發(fā)部署的這些微應(yīng)用作為校園信息化應(yīng)用的補充之一,師生喜歡使用并積極主動去用,給學(xué)院師生帶來便利,也方便了學(xué)校管理。
微應(yīng)用是實現(xiàn)某個單一功能的小程序,其優(yōu)點是代碼量少、執(zhí)行效率高,缺點是可能導(dǎo)致應(yīng)用碎片化,但微應(yīng)用設(shè)計初衷是在方便用戶使用的同時,提升學(xué)校信息化建設(shè)及應(yīng)用水平,如能嚴格遵循數(shù)據(jù)標準,嚴控數(shù)據(jù)來源,統(tǒng)籌優(yōu)化數(shù)據(jù)流轉(zhuǎn),則可將碎片化帶來的影響降到最低。后續(xù),我們還計劃引入流程引擎系統(tǒng),依托校內(nèi)應(yīng)用和數(shù)據(jù),打造更多更好的流程類微應(yīng)用,同時將開發(fā)更多非流程類的微應(yīng)用,為推動學(xué)校信息化做出應(yīng)有的貢獻。