首先可以明確的告訴你,任何一門開發語言都可以實現SSO單點登入機制!
SSO是英文Single Sign On的簡寫,中文翻譯就是單點登入。單點登入是為了解決什麼問題而生的呢?在企業資訊化建設過程中,業務會越來越複雜,所以系統會越來越多(甚至是不同語言開發的系統),這些系統間如果使用者認證體系沒有統一,那我們就要記住很多密碼,另外每個系統都要登入一次,相當麻煩。也就是在這種背景下,SSO機制應運而生。
SSO會有一個獨立的中央認證系統(CAS),其它系統沒有登入/註冊入口,統一在認證系統處進行登入認證。當用戶在認證系統成功認證之後,認證系統會建立授權令牌給各個子系統,各個子系統拿到令牌後進行相關驗證後就建立各個系統的會話。
SSO最終還是基於Token+Cookie+Session等技術來實現的,所以說任何一款開發語言都可以實現SSO單點登入。
SSO單點登入聽上去很簡單,但在不同業務下它實現的成本也是不同的,比如多個B/S系統會存在以下場景:
1、多個系統部署(主)域名相同
同域名下的多個系統間實現SSO可以採用Cookie共享的方式來完成(因為不涉及跨域),當A系統使用者訪問CAS認證完成後,在跳轉回A系統時寫入Cookie,當下次訪問B系統時就能獲取同域下的Cookie以完成會話跟蹤。
2、多個系統部署的域名不同
Cookie是有域限制的,非同源的Cookie互不可見。在這種情況下,A系統在CAS認證完成後,可以採用訊息通知的方式(如:批次請求各個子系統的回撥URL完成Cookie寫入)去通知其它已註冊的子系統完成會話狀態生成。
首先可以明確的告訴你,任何一門開發語言都可以實現SSO單點登入機制!
什麼是SSO單點登入?SSO是英文Single Sign On的簡寫,中文翻譯就是單點登入。單點登入是為了解決什麼問題而生的呢?在企業資訊化建設過程中,業務會越來越複雜,所以系統會越來越多(甚至是不同語言開發的系統),這些系統間如果使用者認證體系沒有統一,那我們就要記住很多密碼,另外每個系統都要登入一次,相當麻煩。也就是在這種背景下,SSO機制應運而生。
SSO單點登入的原理SSO會有一個獨立的中央認證系統(CAS),其它系統沒有登入/註冊入口,統一在認證系統處進行登入認證。當用戶在認證系統成功認證之後,認證系統會建立授權令牌給各個子系統,各個子系統拿到令牌後進行相關驗證後就建立各個系統的會話。
SSO最終還是基於Token+Cookie+Session等技術來實現的,所以說任何一款開發語言都可以實現SSO單點登入。
不同場景下的SSO單點登入實現方案SSO單點登入聽上去很簡單,但在不同業務下它實現的成本也是不同的,比如多個B/S系統會存在以下場景:
1、多個系統部署(主)域名相同
同域名下的多個系統間實現SSO可以採用Cookie共享的方式來完成(因為不涉及跨域),當A系統使用者訪問CAS認證完成後,在跳轉回A系統時寫入Cookie,當下次訪問B系統時就能獲取同域下的Cookie以完成會話跟蹤。
2、多個系統部署的域名不同
Cookie是有域限制的,非同源的Cookie互不可見。在這種情況下,A系統在CAS認證完成後,可以採用訊息通知的方式(如:批次請求各個子系統的回撥URL完成Cookie寫入)去通知其它已註冊的子系統完成會話狀態生成。