sso 登入,網頁跳轉的實現方式

2022-04-01 10:17:43 字數 1891 閱讀 7366

在昨天的部落格中我們介紹了幾種單點登入的方案.不過那些方案我都沒有實現過,只是在自己的一些客戶公司裡見過,下面我就要親自介紹,我親身設計和參與的sso方案.

首先,我們看看設計圖吧.

注:1)紅色部分為加密傳送的內容;

2)綠色部分為門戶系統實現的流程;

3)灰色部分為外部應用系統原有已經實現的流程;

4)藍色部分為外部應用系統需要增加或修改的流程;

針對上面的圖:流程看如下解釋.

step1

1)   使用者在瀏覽器輸入門戶的位址進入門戶系統;

2)   使用者輸入門戶系統的使用者名稱和密碼;

3)   認證中心向ad發起登入認證;

4)   ad認證失敗返回門戶系統的登入頁面,系統記錄日誌並提示錯誤資訊;ad認證成功,門戶系統登入成功轉到步驟6);

5)   使用者重新輸入門戶系統的使用者名稱和密碼,返回步驟3)重新登入;

6)        門戶系統登入成功跳轉到登入**頁,如果沒有登入**頁跳轉到門戶系統首頁;

step2

1)   使用者在門戶系統的頁面,點選外部應用系統的鏈結,進行單點登入流程;

2)   門戶系統先判斷門戶登入憑證是否失效;

3)   門戶系統登入憑證失效返回step1的 門戶系統登入流程;

4)   門戶系統登入憑證沒有失效,判斷單點登入的系統是否是整合ad;

5)   整合ad登入的系統直接獲取當前使用者名稱和密碼;

6)   沒有整合ad登入的系統,通過使用者對映關係獲取外部應用系統的使用者名稱和密碼;

7)   如果不存在對應的外部應用系統的使用者對映關係(沒有做初始化外部應用系統的使用者對映關係情況),彈出單點登入對映資訊填寫頁,使用者填寫外部應用系統的使用者名稱和密碼;

8)   如果存在對應的外部應用系統的使用者對映關係,獲取外部應用系統的使用者名稱和密碼;

9)   對使用者填寫的外部應用系統的使用者名稱和密碼,門戶需要記錄;

10) 把外部應用系統的使用者名稱和密碼加密(對稱加密)(分別按門戶系統與外部接入系統約定方式進行加密解密);

11) 把加密後的使用者名稱和密碼以引數形式傳遞給外部應有系統(外部應用系統需要實現接受使用者名稱和密碼的介面);

12) 外部應用系統先執行原有的登入認證流程,發現在原有認證流程無法使系統登入的時候,從引數讀取使用者憑證,也不存在呼叫門戶系統登入請求介面;

13) 能獲取使用者憑證,對使用者憑證進行解密(分別按門戶系統與外部接入系統約定方式進行加密解密);

14) 使用使用者憑證進行外部應用系統的登入認證;

15) 認證成功轉到外部應用系統頁面,並呼叫門戶記錄日誌

16) 認證失敗呼叫門戶系統登入請求介面

17) 呼叫門戶登入請求會重新執行步驟2);

step3

1)   使用者在瀏覽器直接輸入外部應用系統的位址;

2)   外部應用系統實現的流程和step2的步驟12)一致,先實現外部應有系統的登入認證流程,若沒有不能登入系統,讀取引數,都讀取不到使用者憑證向門戶系統發出登入請求(參看介面3.6.2),若能讀取對使用者憑證解密,進行外部應用系統的認證登入;

3)   認證成功轉到外部應用系統頁面,並呼叫門戶記錄日誌

4)   認證失敗呼叫門戶系統登入請求介面

這方案的優點是可以實現雙向登入,而且針對所有web站點都可以實現單點登入..缺點是實現比較複雜,而且需要更改其他系統.

SSO單點登入的幾種方式

這裡是引用 單點登入sso single sign on 說得簡單點就是在乙個多系統共存的環境下,使用者在一處登入後,就不用在其他系統中登入,也就是使用者的一次登入能得到其他所有系統的信任。單點登入在大型 裡使用得非常頻繁,例如像阿里巴巴這樣的 在 的背後是成百上千的子系統,使用者一次操作或交易可能...

sso 登出 單點登入(SSO)的設計與實現

sso英文全稱single sign on,單點登入。sso是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。例如訪問在網易賬號中心 登入之後 訪問以下站點都是登入狀態 本篇文章也主要是為了 如何設計 實現乙個sso系統 以下為需要實現的核心功能 對於登入資訊的儲存,建議採用...

單點登入SSO的實現原理

單點登入sso的實現原理 單點登入sso single sign on 說得簡單點就是在乙個多系統共存的環境下,使用者在一處登入後,就不用在其他系統中登入,也就是使用者的一次登入能得到其他所有系統的信任。單點登入在大型 裡使用得非常頻繁,例如像阿里巴巴這樣的 在 的背後是成百上千的子系統,使用者一次...