胡貞華 陳雪花 何創新
摘要:隨著高校信息化建設,已有許多信息化系統得到使用,但由于各系統資源不共享,每個系統的賬戶信息不通用,導致系統業務無有效的對接。通過發揮OAuth2.0認證協議和SSL加密技術的優點,既可以解決高校統一身份認證平臺建設過程中與外部系統互通的安全問題,又能達到校內信息與資源共享的目的。
關鍵詞:OAuth2.0;統一身份認證;授權;協議;
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2019)06-0265-03
Research on the Application of Unified Identity Authentication in Universities Based on OAUTH2.0
HU Zhen-hua, CHEN Xue-hua, HE Chuang-xin
(Network and Educational Technology Center Shaoguan University, Shaoguan 512005, China)
Abstract: With the construction of information technology in colleges and universities, many information systems have been used, but because the system resources are not shared, the account information of each system is not universal, resulting in no effective interconnection of system services. By utilizing the advantages of OAuth2.0 authentication protocol and SSL encryption technology, it can not only solve the security problem of intercommunication with external systems in the process of building a unified identity authentication platform, but also achieve the purpose of sharing information and resources within the school.
Key words: OAuth2.0; uniform identity authentication; authorization; protocol;
1 背景
高校的信息化建設隨著信息技術發展在不斷前進,學校各級部門的應用系統越來越多。但由于各系統互相獨立,賬戶資源不共享,導致用戶在使用多個系統時,需要設置多個賬戶密碼。通過建立一個統一的認證中心,保證賬戶數據的一致性,不僅能減少開發成本,同時也方便了用戶,從而使系統間安全細粒度的業務集成成為可能。在OAuth2.0出現之前,高校的統一認證一般采用openid的集成方式,該方式通過一個共用的密匙來確認授權。但該方式容易被監控,安全性較低,不能夠滿足當今高校的業務應用需求。
OAuth2.0是當前互聯網統一認證授權中應用最為廣泛的,國內外知名的社交媒體,如twitter、facebook、sina等,都有用到OAuth2.0作為統一認證協議[1]。通過將OAuth2.0作為認證協議,建立統一的認證中心,保證賬戶數據的一致性,減少開發成本,使系統變的更加安全。
2 OAuth2.0認證授權技術
OAuth(開放授權)協議是一個開放標準,它是OpenID的一個補充完善,允許用戶在不提供用戶名和密碼的情況下,讓第三方應用能夠訪問自己在某一網站上的資源,如用戶昵稱,頭像等信息[2]。
OAuth2.0認證授權技術是以原OAuth協議為基礎,將重點放在開發的簡易性上而進行的版本升級,但OAuth2.0不向下兼容OAuth1.0的協議。OAuth2.0通過允許第三方應用來代表用戶獲得授權,或者是資源所有者與HTTP服務商之間所授權批準的交互動作代表用戶,同時為Web應用、桌面應用、手機和智能家居設備提供專門的認證流程。OAuth2.0定義了四個角色:資源擁有者、資源服務器、客戶端、授權服務器,其工作流如圖1所示[3]。
具體的工作流程是客戶端先從資源所有者處獲得授權,才能使用授權服務器進行身份驗證。授權服務器檢查從客戶端那邊收到的授權認可,如果檢查無誤,則將分配令牌給客戶端。最后,資源服務器檢驗從客戶端那邊收到的令牌,若有效則返回客戶端所請求的資源。
在OAuth2.0中,客戶端需要先從資源所有者中獲取授權碼,然后再使用授權碼與授權服務器交換訪問令牌。如果從一開始就直接返回訪問令牌,則會減少認證時間,提高認證性能,為什么OAuth2.0不這樣做呢?原因是客戶端與資源所有者通訊時采用重定向鏈接不是個安全的通訊通道,這種方式不適合進行加密數據的傳輸,也就不適合傳輸訪問令牌。通過OAuth2.0的驗證方式,可以保證授權碼只能在客戶端中起作用,并且在最后訪問令牌的唯一持有方(客戶端)保證令牌不被泄露。
3 OAuth2.0與統一身份認證的結合
3.1 賬戶存儲形式變更
要將OAuth2.0與統一身份認證平臺相結合,需要先轉變現有的用戶賬戶的數據存儲形式,將用戶的賬戶數據由一個統一的宿主平臺負責存儲,本地的系統只需要通過授權協議OAuth2.0即可使用[4]。用戶只需要登錄到宿主平臺,即可分權使用所有校園業務系統。
3.2 選取可靠的宿主平臺
選取一個穩定性好,安全性高的宿主平臺十分重要,優秀的宿主平臺能夠額外提供一些能夠幫助到信息化建設的應用。從用戶的角度出發,還要考慮到高校各類業務系統的使用頻率,建議將使用頻繁使用的系統作為宿主平臺的首選。
3.3 OAuth2.0開放授權
OAuth2.0的開放授權模式,實際上是通過從資源宿主平臺中獲取用戶的身份驗證信息和需要共享的數據資源,并且將此數據授權給其他系統應用。被授權的系統也擁有自己獨有的數據資源,由用戶決定是否將這些資源共享出去。例如,在網絡教學平臺中,因為一些原因,系統希望部分網絡教學資源只保留在本地系統。此時通過開放授權協議,老師可以將其他系統上的教學資源共享到本地的網絡教學平臺上,此時學生可以通過網絡教學平臺,同時訪問本地的教學資源與其他系統上的教學資源。
4 基于OAuth2.0統一身份認證的系統設計
高校各類系統業務系統應歸集到統一身份認證平臺中,各類業務系統的數據如用戶身份、訪問權限等信息均需通過統一身份認證平臺進行管理與共享,并由統一身份認證系統來統一授權訪問,實現用戶數據統一管理。
4.1 統一身份認證平臺的系統構架
各子應用系統在接入到統一認證中心前,需要向認證中心申請認證,提供應用名稱、應用網址、應用類型等基本應用信息。因為OAuth2.0 核心流程所需要的數據均保存在認證服務器數據庫中,所以每一個需要接入的子應用系統都需要在統一身份認證服務器注冊用于標示該應用信息,包括appid(客戶端id)、appsceret(App密匙)、appname(App名稱)、appuri(App回調安全url)等信息[5]。申請通過后,子系統管理員通過獲取管理地址,管理接入參數與權限,接入流程見圖2。
統一認證提供統一的用戶資源數據,和統一的授權管理。每一個應用通過統一認證進行接入,統一認證中心是整個數字化校園平臺的核心。統一身份認證中心利用LDAP目錄數據庫對高校用戶、高校組織機構、信息資源等進行統一存儲。統一身份認證平臺工作流程如圖3所示:
統一身份認證平臺的工作流程如下:用戶訪問應用系統A,應用系統A定位到統一身份認證平臺,用戶將登錄名、登錄口令、設備名稱等登錄信息提交給統一身份認證平臺。通過驗證之后返回平臺返回一個ticket給用戶,并向應用系統A返回用戶信息,由應用系統A授權用戶訪問。用戶攜帶返回的ticket訪問應用系統B,通過驗證之后應用系統B授權用戶,用戶成功訪問應用系統B。統一身份認證平臺統一管理用戶信息并進行統一認證與授權,避免了各應用系統單獨授權。通過 webservice 松耦合的方式將單點登錄、授權、認證等相對獨立的功能連接起來,既保證各功能在平臺上的獨立性,又能提高整個統一身份認證平臺的安全性。
4.2 基于OAuth2.0 機制認證的實現
第一步,獲取 access_token 訪問令牌。通過認證接口接入第三方應用時,可設置以下參數:需設置client_id,該值為應用在接入系統申請時,獲得的appid; response_type為必須設置,值為token;接著設置重定向路徑redirect_uri,需包含在申請時appuri的開始部分,否則參數無效;outer_type為非必須參數,用于啟動如微博、QQ等類型的賬號登錄。
4.3 系統安全性設計
為保護客戶端Cookie信息的有效性和安全性,需對Cookie內容進行有效加密。采用SSL技術在客戶端和注冊應用系統中加密通道,協助完成用戶的身份認證,實現用戶登錄信息和用戶登錄憑證的加密傳輸,可有效地保證傳輸中安全。為加強用戶密碼的安全性,可以通過md5加鹽加密算法進一步保全。首先,隨機的生成一個16位的字符串,然后將這字符串和用戶所輸入的密碼進行MD5加密,接著將這字符串按照一個規則放入到50位的字符串中,在驗證時使用相同的規則將16位字符串取出來,對比 MD5 摘要,如果相同則密碼正確。通過這種加密設計即使數據庫泄露,用戶密碼也不會被查出來[6]。
5 結束語
在業務繁多的高校進行信息化建設是比較復雜的,基于OAuth2.0的統一認證可以集成開放平臺的賬號登錄,實現校內外各個業務系統的統一認證。特別是在本地化定制的教學平臺中,充分利用師生已有的微博、微信進行綁定認證,既可登錄本地教學資源又可以充分利用互聯網已有的學習資源,實現了信息與資源互通共享的目的。充分體現了基于OAuth2.0的統一授權認證能夠為用戶提供更好的服務和功能體驗,幫助用戶對各類應用進行分類權限管理。
參考文獻:
[1] 王力猛, 陳鵬, 楊小軍. OAuth2.0協議認證授權實現方案研究[J]. 電腦編程技巧與維護, 2015(10): 21-22, 43.
[2] 陳偉, 楊伊彤, 牛樂園. 改進的OAuth2.0協議及其安全性分析[J]. 計算機系統應用, 2014, 23(3): 25-30, 39.
[3] Hardt D. The OAuth 2.0 authorization framework[R].[s.l.]:[s.n.],2012
[4] 田嵩, 雷東升. 開放授權協議在云學習中的應用研究[J]. 數學的實踐與認識, 2013, 43(4):108-116.
[5] 劉姚. 基于Spring和OAuth2.0的第三方授權框架[J]. 計算機技術與發展, 2017, 27(3):167-170.
[6] 趙素萍. MD5加密算法的改進及應用[J]. 現代計算機: 專業版, 2017(15):60-62.
【通聯編輯:謝媛媛】