前些天一位其他開發部門的同事找到我們了解一些關於sso單點登入的事,他們要做單點登入,同時也需要和我們這邊的系統做整合,要我幫忙做一單點登入,了解關於單點登入的解決方案和資料,雖然做單點登入已經很久了,自以為對sso系統也算比較了解。但是被他這麼一問,反倒是一下講不清楚,所以總結一下目前正在使用的sso 解決方案的實現原理,也算是真正的再一次學習sso 吧。
首先,單點登陸(sso) 是為了一次登陸,就能在其他各子系統獲得訪問許可權,無需使用者再輸入使用者名稱和密碼,所以一般會使用集中驗證方式,多個站點集中sso驗證。如下圖所示:
所以,通過上圖,可以看出,當訪問主站是,會請求sso 進行身份驗證,sso系統驗證成功後,會給主站返回乙個令牌,這樣在主站(oa)訪問其他子系統的時候,帶上令牌,這樣就實現了單點登入,無需再驗證使用者名稱和密碼。
下面說說sso 系統單點登入的驗證過程:
當使用者訪問應用系統是,會驗證session 是否存在,如果session存在,則直接進入系統,如果session 不存在,說明使用者未登陸該系統,然後驗證使用者的主系統是否登陸,是否有令牌,如果有令牌則驗證令牌是否有效,如果令牌合法,那麼進入該應用系統,反之則需要重新登陸,生成令牌。
注:這裡的令牌,是通過加密的cookie傳輸的,由sso系統頒發可在各分站中流通的標識。
令牌是由sso系統頒發,系統接收到令牌之後,生成會話(session)。 令牌通過cookies的方式在各跨域分站中進行流通,所以sso生成的令牌放在cookie中返回給各個系統,並指定cookie.domain="oa.com"。
由於令牌是通過cookie 流通,所以各業務子系統都需要在oa.com這個域下,否者會接收不到sso產生的令牌。其次是需要增加乙個sysadapter.aspx 中間頁,用於令牌的獲取和驗證。
posted @
2014-10-26 23:42
章為忠 閱讀(
...)
編輯收藏
單點登入系統 SSO 總結
其實就是統一使用者管理平台,如今各種系統數不勝數,這就難免需要使用者名稱和密碼登入,但是賬戶越多越容易忘記,而且每次訪問需要登入還很麻煩,所以單點登入系統應運而生,這也是我上班的第乙個任務 利用公司現有的sso伺服器來配置客戶端開發使用者登入介面從而和別的公司對接。起初我還以為是做外包的,認為i很簡...
單點登入(SSO)系統的總結
前些天一位其他開發部門的同事找到我們了解一些關於sso單點登入的事,他們要做單點登入,同時也需要和我們這邊的系統做整合,要我幫忙做一單點登入,了解關於單點登入的解決方案和資料,雖然做單點登入已經很久了,自以為對sso系統也算比較了解。但是被他這麼一問,反倒是一下講不清楚,所以總結一下目前正在使用的s...
單點登入(SSO)系統的總結
前些天一位其他開發部門的同事找到我們了解一些關於sso單點登入的事,他們要做單點登入,同時也需要和我們這邊的系統做整合,要我幫忙做一單點登入,了解關於單點登入的解決方案和資料,雖然做單點登入已經很久了,自以為對sso系統也算比較了解。但是被他這麼一問,反倒是一下講不清楚,所以總結一下目前正在使用的s...