NET、Java能夠實現(xiàn)SSO單點登錄嗎?為什么?
網友解答: 首先可以明確的告訴你,任何一門開發(fā)語言都可以實現(xiàn)SSO單點登錄機制!什么是SSO單點登錄?SSO是英文Single Sign On的簡寫,中文翻譯就是單點登錄。單點登錄是為了
首先可以明確的告訴你,任何一門開發(fā)語言都可以實現(xiàn)SSO單點登錄機制!
什么是SSO單點登錄?SSO是英文Single Sign On的簡寫,中文翻譯就是單點登錄。單點登錄是為了解決什么問題而生的呢?在企業(yè)信息化建設過程中,業(yè)務會越來越復雜,所以系統(tǒng)會越來越多(甚至是不同語言開發(fā)的系統(tǒng)),這些系統(tǒng)間如果用戶認證體系沒有統(tǒng)一,那我們就要記住很多密碼,另外每個系統(tǒng)都要登錄一次,相當麻煩。也就是在這種背景下,SSO機制應運而生。
SSO單點登錄的原理SSO會有一個獨立的中央認證系統(tǒng)(CAS),其它系統(tǒng)沒有登錄/注冊入口,統(tǒng)一在認證系統(tǒng)處進行登錄認證。當用戶在認證系統(tǒng)成功認證之后,認證系統(tǒng)會創(chuàng)建授權令牌給各個子系統(tǒng),各個子系統(tǒng)拿到令牌后進行相關驗證后就創(chuàng)建各個系統(tǒng)的會話。
SSO最終還是基于Token+Cookie+Session等技術來實現(xiàn)的,所以說任何一款開發(fā)語言都可以實現(xiàn)SSO單點登錄。
不同場景下的SSO單點登錄實現(xiàn)方案SSO單點登錄聽上去很簡單,但在不同業(yè)務下它實現(xiàn)的成本也是不同的,比如多個B/S系統(tǒng)會存在以下場景:
1、多個系統(tǒng)部署(主)域名相同
同域名下的多個系統(tǒng)間實現(xiàn)SSO可以采用Cookie共享的方式來完成(因為不涉及跨域),當A系統(tǒng)用戶訪問CAS認證完成后,在跳轉回A系統(tǒng)時寫入Cookie,當下次訪問B系統(tǒng)時就能獲取同域下的Cookie以完成會話跟蹤。
2、多個系統(tǒng)部署的域名不同
Cookie是有域限制的,非同源的Cookie互不可見。在這種情況下,A系統(tǒng)在CAS認證完成后,可以采用消息通知的方式(如:批量請求各個子系統(tǒng)的回調URL完成Cookie寫入)去通知其它已注冊的子系統(tǒng)完成會話狀態(tài)生成。
以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流 ~ 我是科技領域創(chuàng)作者,十年互聯(lián)網從業(yè)經驗,歡迎關注我了解更多科技知識!