• 沒有找到結果。

系統模組開發

第五章 系統建置與分析

5.2 系統模組開發

本系統是一套能滿足國中、小校務行政填報業務與個人化需求的跨網域單一登入系 統,所以在模組開發上,我們盡可能依照現行的教育行政體制與操作簡單易懂的概念去建 置,以利系統功能擴充與其他系統之整合,並採用 Web-Based 作為系統的介面,以方便使 用者與管理者操作,最後為了整體開發成本之考量,決定採用開放原始碼所提供之函式庫 或工具,並將其適當的整合運用至本系統中。圖5.1及圖5.2分別為使用者登入本系統後與 管理者進入系統管理之畫面,畫面左邊為功能選項。

圖 5.1 使用者登入畫面

圖 5.2 管理者操作畫面

下面我們就針對各模組的開發逐一的介紹:

1. 登入與登出模組(Login Module ,LM)

由於本系統是採用帳號/密碼的登入方式,因此開發此模組的首要工作便是確保資 料傳輸過程的安全,因此我們透過 OpenSSL 所提供的加密函式庫來實作 SSL 服務,

以確保使用者輸入的資料與後續跟本系統溝通的安全,圖5.3為使用者經過 SSL 加密 的登入畫面。

圖 5.3 SSL 加密的登入畫面

當使用者點選「登出網站」或傳送過期的 cookie 資訊欲登入時,我們利用PHP 提供的Session函式庫:session_destroy與HTTP 相關函式庫:setcookie,來刪除伺 服器端的session資料與 AM 所派發的cookie資訊。若使用者在登入時,Cookie有效期 選擇即時的話,即使使用者未執行登出的動作,只要使用者直接關閉瀏覽器,Cookie 與 Session 也將會立即失效。

2. 認證模組(Authentiation Module ,AM)

認證模組主要負責使用者的認證工作,依運作流程階段分為帳號/密碼認證、

Cookie認證與Session認證。

當使用者第一次登入本系統時,必須先通過帳號/密碼的認證,才能取得相關的服 務。雖然資料在傳輸的過程中有 SSL 加密的保護,不過由於認證密碼都儲存在資料庫 中,因此我們採用 mhash 函式庫中的 MHASH_SHA1 雜湊運算法來對登入密碼作加密,

以確保資料庫中資料的安全。

若使用者輸入的帳號/密碼與使用者資料表中user_name、user_pass 的欄位值相

符,AM 便會向 role_assign 資料表取得該使用者的角色代碼,連同認證成功訊息一 湊訊息確認碼(Hash Message Authetication Code ,HMAC) 存入Cookie中,讓使用者 在有效時間內,能透過傳送 Cookie 值來確認身分的合法性,而不須再輸入帳號/密碼 即可登入本系統。

最後為了強化資料的安全性,因此採用 PHP 提供的 mcrypt 編碼函式庫:

MCRYPT_RIJNDAEL_256 加密演算法來對我們的session id加密,並且為了提高駭客破 解的難度,以 Hash(ID) 加上管理者設定的server key當作加密金鑰,讓每位使用者 所使用的加密金鑰皆不同。

當使用者通過帳號/密碼的認證再度登入時,AM 會先比對 Cookie 中的雜湊訊息 確認碼,檢查使用者所傳送的Cookie是否合法,若 Cookie 合法,則將存放在 Cookie 中的 Session id 解密後,依照 Session id 取得原先存放在 Session 中的認證訊息 與授權的權限資料,並將畫面重導至服務頁面。若 Cookie 不合法或 Session 有效時 間逾期,則將使用者重導至登入頁面,讓使用者重新輸入帳號/密碼認證。

3. 單一登入服務模組(Single Sign-On Module ,SSOM)

本模組在單一登入功能設計上,分為行政人員業務網站與個人服務網站,因此必

圖 5.4 代登入網站管理功能列表

圖 5.5 桃園縣網路公文系統代理登入程式

另外,我們也提供行政人員可以自行設定填報業務定期提醒的功能,如圖5.6,讓 行政人員面臨眾多填報的網站而不會忘記定時完成填報業務。

圖 5.6 定期填報業務提醒設定畫面

最後我們也將個人常用的服務網站轉換成代登入程式,提供一般使用者自行新增 個人服務網站的功能,如圖5.7,以減少使用者反覆輸入帳號、密碼的次數。

圖 5.7 新增個人代登入服務網站畫面

由於我們設計的代登入程式,都需要讀取存放在資料庫中的帳號、密碼,因此儲 存在代登入網站資料表中的代登入帳號/密碼極為重要,若被惡意攻擊者所取得,將會 產生資安風險,因此我們利用透過 AES 加密演算法(MCRYPT_RIJNDAEL_256)將代登 入帳號/密碼加密,以防止惡意攻擊者直接看到代登入帳號/密碼。

4. 使用者資訊儲存模組(User Data Module , UDM)

本模組設計的功能,以維護使用者個人基本資料為主,因此對於一般使用者而言,

他們可以透過此模組來修改基本資料或變更登入密碼;相對的,管理者也可以利用此 模組維護所有使用者的基本資料,圖5.6為使用者資料管理功能列表。

為了防止使用者短暫的離開而未登出系統,導至密碼被變更,因此使用者在變更 密碼時,必須先輸入舊的密碼,才可以將新密碼存入資料庫中,並且變更的資訊也會 被記錄至稽核資料表中,以防止惡意使用者的任何行為。

圖 5.8 使用者資料管理功能列表

5. 授權與權限管理模組(Authorization and Privilege Management Module ,APM)

由於使用者、群組、團隊與角色及權限的關係,皆儲存在資料庫中,因此我們必 須設計一個介面來提供管理者可進行角色資料維護、角色指派與權限設定等相關作業。

本模組主要提供了四個主功能:角色維護、群組維護、團隊維護與任務維護。透過角 色維護管理功能,管理者可以新增角色資料、編刪啟用角色、角色權限設定、使用者 帳號與角色對應、群組與角色對應、團隊與角色對應之設定,如圖5.7。

圖 5.9 角色維護管理功能選單

管理者可依照教育行政編制,將角色名稱先行建立好,接著設定每一個角色所擁

有的權限,最後再將角色值指派給相關使用者、群組或團隊,讓使用者成功登入系統 後,即可依照其角色身分來執行該角色所被指派的權限。

另外,對於角色屬性相同的使用者,我們把他們設為同一個群組,再將選定的角 色指派給該群組,讓管理者不用重複設定相同角色給每位使用者;若相同角色屬性的 使用者變更角色時,也只需要重新指派角色給群組即可。

圖5.8為群組維護管理功能選單,管理者透過此功能選單,可減少設定所花費的時間,

藉此也能減輕管理者的負擔。

圖 5.10 群組維護管理功能選單

對於某些需要團隊分工合作才能完成的任務,我們也設計一個管理介面提供管理 者新增團隊名稱或依需求將使用者選入同一團隊中之功能,讓每位使用者都能依照自 己的專長或角色來完成任務,團隊維護管理功能選單如下圖5.9。

圖 5.11 團隊維護管理功能選單

最後,我們也必須提供管理者可以將新增的任務指派給執行團隊之功能,如圖5.10,

讓此團隊可以依據任務的權限,完成自己本身負責之事項。

圖 5.12 任務指派功能選單 6. 稽核管理模組(Audit Management Module , AuM)

本模組的設計是為了讓管理者隨時掌握非法的操作行為,因此我們設計一個查詢 與列印的管理介面,經由此介面可以呈現登入資訊、登入密碼異動、代登入帳號密碼 異動、角色指派異動、角色權限異動等相關資訊,供管理者進行系統安全補強或資料 復原等工作,圖5.11為系統稽核畫面。

圖 5.13 系統稽核畫面

相關文件