概述
單點登錄是用户只需登錄一次,即可訪問所有互信應用系統的認證方案。它通過中央認證服務器統一管理登錄,避免重複輸入密碼。
在零衍的實際使用場景中,單點登錄(SSO)是高頻且關鍵的核心功能之一。為支撐後續交付實施階段的方案選型,以及問題排查時的思路梳理,本次將重點介紹常用單點登錄協議,並針對 OAuth2.0 等非單點但功能相關的協議進行對比分析,為相關場景的落地提供參考。
內容簡介
學習目標:
◆ 零衍單點Server介紹
◆ OAuth 協議講解
◆ 實際案例分析:H-ZERO 的 OAuth2 協議流程
◆ 實際案例分析:H-ZERO 對接零衍的 OAuth2 協議流程
◆ CAS 協議講解
◆ 實際案例分析:EIP 系統協議流程
◆ 異構系統二開時,如何進行客户端插件開發
零衍登錄支持的單點類型有:
◆ OAuth2
◆ CAS
◆ SAML
◆ SAP GUI
登錄方式區別
◈ 單點登錄:在整個系統架構中,零衍與客户已安裝的 OA、SRM 等系統屬於同一架構,實現單點登錄。
◈ 三方登錄:外部系統與本系統未部署在一起,登錄頁可選擇是否使用,常見如飛書登錄、企業微信登錄等,一般採用三方提供的 Oauth2 協議。
◈ LDAP 登錄:與單點登錄本質不同,僅將用户名和密碼校驗交給 LDAP 服務端,登錄頁仍使用原登錄頁,不具備單點登錄功能。可根據客户對登錄效果的要求選擇使用哪種登錄方式。
OAuth2協議介紹
1. OAuth2.1 與 OAuth2 的區別
首先,在瞭解OAuth2的時候,先了解OAuth2.1 與 OAuth2 的區別介紹:
零衍基於OAuth2.1結合當前使用情況,做了一些歷史常用方法兼容:
- 禁止簡單模式
- 額外提供密碼模式
- 授權碼模式/Token的用法保持OAuth2.1的使用方式
2. 關於OAuth2 協議的授權模式介紹
- OAuth2 授權模式: 簡單模式(Implicit)
在OAuth2.1 已經廢棄的協議,在系統內部可以考慮繼續使用,但是在單點的場景裏,協議最佳還是OAuth2協議。 - OAuth2 授權模式: 密碼模式 (Resource Owner Password Credentials)
一種出現在服務於服務之間的授權協議,單點登錄的場景裏一般情況不會使用。在OAuth2.1已經廢棄,但是在歷史的架構裏非常常見,因此零衍額外單獨提供該協議以方便過渡使用。 - OAuth2 授權模式: 客户端模式(Client Credentials Grant)
一種不涉及用户的授權模式,與單點登錄無關。 - OAuth2 授權模式: 授權碼模式(Authorization Code)
單點登錄的最佳實踐授權模式。
構建單點授權認證鏈接:
獲取code參數,之後進行access_token轉換:
成功獲取access_token之後,獲取單點登錄用户信息:
3. 系統演示
在瞭解了OAuth2相關的授權模式之後,可以根據H-ZERO以及零衍的使用情況觀察現象。
◈ H-ZERO的OAUTH服務登錄(簡單模式)
簡單模式的認證鏈接構建:
◈ 零衍&H-ZERO單點登錄(授權碼模式)
構建授權認證鏈接:
完成單點登錄,返回code參數給客户端:
CAS協議介紹
在瞭解OAuth2協議之後,CAS協議就更加容易理解。簡單的講,CAS協議,與OAuth2的簡單模式有一定程度的相似。這也是更推薦OAuth2的授權碼模式做單點登錄的原因,安全性相對來説更好一些。
這裏可以用CAS的圖與OAuth2的簡單模式的圖進行對比,除了接口地址以及參數名稱不同,整體流程基本一致。
認證接口介紹如下:
獲取用户信息接口如下:
1. CAS2/CAS3和零衍的區別
零衍基於CAS2/CAS3在保持原始協議使用情況不變的前提下,增加了一些基本的安全性校驗,以及同時支持CAS2和CAS3協議。
2. 系統演示
在瞭解了CAS協議之後,可以根據EIP的使用情況觀察現象。
其他系統自定義單點客户端
在瞭解了OAuth2 和CAS的單點登錄之後,我們可以根據實際情況做一些如何開發單點登錄客户端的方案。
更多
操作手冊:漢得焱牛開放平台
文檔 > 技術產品 > 零衍系統管理平台KINGPAAS