星期二, 11月 08, 2005

Single Sign On 的作法

最近公司的系統需要配合銀行端所提供的 SSO (Single Sign On) 機制.
這個機制看文件是 IBM 所提供的方法.
在看過這個方法之後, 順便也把之前所寫過的 SSO 方法想過一遍.
其實 IBM 所提供的方法, 我總是覺得怪怪的.
所以把之前的作法, 整理一下, 發表出來.

A 是主控網站, B 是外部系統, db 兩系統需可共用. 使用者必須開啟 cookie.

A 系統來 control 這些 user 是否登入,B 系統發現一位未登入之使用者,則將 Redirect 到 A 系統來判斷是否有登入,Redirect 過去之後,將回覆網址帶過去,當 A 系統發現該 user 已登入,則再 Redirect 到回覆網址中,並帶給 B 系統一個 key. B 系統有了這個 key, 則可以去 access 資料庫.找出該 user 的真實身份, 然後可以自動登入.

說明為啥要開啟 cookie 呢? 原因在於無法使用 url-rewrite 的方式來記錄該 user。若是只有本身的系統,關閉 cookie 還能用 url-rewrite 來達成。跨系統,不使用 cookie 來使用 session 幾乎就沒有其他方法。話是這樣說,但是大部分系統沒有設 cookie 根本就無法運作,在 struts 中,將這種情況考慮進去了,但是若不透過 struts 的標籤的寫法,沒有 cookie 也是會無法運作 session 資料。session and cookie 部份以後再詳細寫一篇好了。

那時想了許多細節可加強與降低 loading. 不過等以後有空再補.

0 Comments:

張貼留言

<< Home