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