1、為什麼要做sso?
2、如何實現sso?
sso有以下幾種方式實現:
3、sso實現機制
以下是我們當前sso的時序圖
sso系統生成ticket並跳轉
子系統換票
4、如何實現統一退出
當子系統換票拿ticket去sso獲取使用者資訊的時候,會獲取到2個引數:ptoken/ptlogout。
那麼這2個引數有什麼用呢?
1. 當a子系統退出的時候,如果需要通知sso退出,就需要用到ptoken。 2. a子系統引導使用者訪問sso退出的介面,並帶上ptoken作為引數。 3. 當sso驗證引數ptoken與本地儲存一致時,從而信任呼叫它的子系統,主動退出。
4. 這時候已登入過的b子系統要怎麼退出呢?ptlogout這時候就發揮它的作用了。sso拿ptlogout去呼叫b子系統的退出介面,ptlogout雙方一致時,b子系統退出。
5、sso的表現形式 — iframe
使用iframe的好處就是對於自己內部接入sso的系統來說,不用關心使用者是如何登入的。
1. 當需要使用sso登入時,只需在頁面嵌入iframe。
2. 當iframe中sso已存在登入狀態的時候,可以直接實現無縫的跳轉,若沒有登入狀態,則顯示登入框提供使用者登入的功能,認證通過後再跳轉。
3. 這樣對於子系統,不需要寫太多的**就能實現單點登入。
4. 為了適應不同子系統的需求,我們還能通過引數配置,來顯示不同的樣式,來控制不同的跳轉返回。
效果圖:
登入方案 使用者單點登入
在微服務專案中,由於使用者往往需要通過閘道器訪問多個微服務,如登入需要訪問使用者微服務,商品瀏覽需要訪問商品微服務,下單需要訪問訂單微服務,支付需要訪問支付微服務。但如何防止使用者操作其他使用者的資料,這就需要在各個微服務中增加授權認證。每個服務都要認證使用者的身份,身份認證成功後,需要識別使用者的...
單點登入方案實戰
頂級網域名稱不一樣的 怎麼辦?這時候就需要cas登場了 1 oauth2,不同的企業之間的登陸,例如 qq登入csdn,應用之間的信任度較低 2 單點登陸,是同一企業的產品系列 不同伺服器上 間的登陸,相互信任度較高 先上個原理圖 1 session cookie機制出現的根源,http連線是無狀態...
單點登入方案筆記
oauth2 不同的企業之間的登入方式 例如 登入csdn用qq登入 單點登入 企業內部的登入方式 一 同頂級網域名稱下單點登入使用session共享的方式 2 攜帶cookie http請求時,攜帶上瀏覽器的cookie cokie裡標識值 jsessionid x 不安全 3 https措施 h...