【臺北市政府教育局】用 Laravel 打造單一身分驗證服務

教育對一個國家的社會發展和經濟增長是至關重要的,百年樹人不止是口號、更是優質人力市場的基石,眼光放眼更見其威力。為了服務眾多的臺北市師生,並讓各單位在資源上更易於整合,同時串接跨部門的系統,臺北市政府教育局為未來下了一個至關重要的決定。

LaravelConf Taiwan 工作小組
Laravel 道場
4 min readJul 9, 2019

--

在這個資訊流通如此迅速的年代,教育的多樣化,遠比過往更加受到重視。而藉由資訊科技來輔助教學,一直以來是許多前輩努力的方向。臺北市政府教育局執掌了學前教育、中小學前教育、高中職、高等教育、終身教育等眾多領域,整個臺北市各級學校加起來約有三萬五千位老師及三十萬左右的學生人數。如何透過科技來協助各領域的教師及學生,打造更好的學習資源平台,是臺北市政府教育局一直努力的方向。

打造單一身分驗證服務

針對如此龐大的教師數量及相關服務人員,過往臺北市政府教育局已經推出了各種線上服務,包括學習工具、線上社群、教師備課、創客 (Maker) 教育、資訊程式教育…等。但可惜的是,過往相關資源並未整合,各教育單位都是自行尋找系統廠商獨立開發。衍生出來的問題是,各系統資料不但無法互通、無法交互登入,多年下來還造成了深厚的資訊壁壘。而在個資法立法實施後,更需要一個符合個資法要求,可以讓個資當事人合法授權使用個資的方法。為了解決這個問題,忠憲老師配合臺北市政府教育局前瞻計畫中之「親師生平臺」的建置,著手打造「單一身份驗證服務 (SSO,Single Sign-ON) 」。透過這個服務,未來所有委外廠商所建置的平台,都能交換並共用彼此的資料,逐步邁向教育大數據的總體目標。

臺北市政府教育局 單一身份驗證服務

目前服務平台提供的功能包含了:一般教育人員帳號管理介面、學校管理人員管理介面、局端管理介面、OAuth 2 驗證服務、教育開放資料介接 Data API、SAML 2 Provider、與各學程校務行政系統進行資料介接與即時同步。在大刀闊斧改革之下,單一入口終於解決的多年以來,許多單位頭痛不已的問題。

驚艷於 Laravel 的簡潔與開發效率

開發這套單一身份驗證服務的忠憲老師表示,當初接到開發任務時,因為有相當緊迫的上線壓力,總時程只有三個月左右。在時間相當有限的情況下,需要一個能夠敏捷開發的框架。而在開發需求上,除了網頁以外,也要能夠快速開發出符合國際標準的 API。相較於其他框架在 OAuth2 及 Data API 各方面都使用外掛模組,容易在系統升級後出現需要修補套件的問題;反觀Laravel 則是核心即內建 Passport 模組,直接支援 OAuth2 及 Data API,不需擔心後續升級相容的問題。而 Laravel 的特點就是架構簡潔、彈性大,只要有 PHP 開發的經驗,很容易就會被這樣簡潔的強大功能所吸引,開發起來有一種水到渠成、得心應手的感覺。

應用容器化 單兵作戰立大功

由於教育現場人力資源相當有限,整套系統在開發階段幾乎只靠忠憲老師一人實作、琪文老師支援介面設計。為了降低整個系統在維運時的成本,忠憲老師在部署時導入了容器的架構。也因此,現在這套系統從更新、修補、災後復原,甚至是從無到有重新架設,都只需要短短的十分鐘。相對於傳統的作法,使用 Docker 的資源很少,運作效率卻非常高。即便開發者都是現任教師,每天仍有不少教務工作,只有課餘時間可以拿來維護系統。但這種Laravel+Docker 的開發方式,一個月僅需投入約 30 個小時的工作時間,即可達成維護這個系統的需求。單兵作戰也能立下彪悍戰功!

成為推廣 Laravel 教育應用的標竿

負責介面設計的琪文老師提到,接下來會繼續在版面上做更多的優化,提昇使用者操作體驗。另外,應用推廣也會是他的重點工作,讓這個單一身份驗證可以應用在更多地方,比方說無線網路登入、局端系統的單一登入、作為網域管理主機,甚至與商業支付工具的整合,讓這個系統有更多發展的可能性。而忠憲老師則希望可以繼續推廣 OAuth2 及 RESTful API 的標準實作,讓更多委外系統廠商能遵循這個標準。未來各系統整合時,可以更有效率也更有安全性。兩位老師也建議目前有在教育現場進行開發的老師能考慮導入Laravel,讓開發更有效率、減少自己的勞苦!兩位老師在這個系統上的努力,可說是 Laravel 在教育應用推廣的標竿,期待臺北市政府教育局在這樣良好的基石上,為教育界打造出更多幫助老師及學生的系統。

--

--

LaravelConf Taiwan 工作小組
Laravel 道場

台灣最專業的 Laravel 開發研討會,由大會官方工作小組提供您第一手的大會訊息及幕後花絮。任何意見回饋請 Mail 至:staff@laravelconf.tw