Re: [請益] 有人做過 Single Sign On (SSO) 嗎??
※ 引述《hijackla (YJUS小吃執行長)》之銘言:
: SOO就是單一登入系統
: 我目前有2套系統 當然也是2套資料庫
: 請問要如何做一個單一登入系統阿??我不知正確作法.....
: 我想法是
: 如A系統 跟 B係統還有一個新C系統都建一個相同帳號與密碼資料表
: 然後登入C系統時 C系統會有一個超聯結連到A系統
: 如 http://loginCtoA.php?id=a1&pass=a11
: 然後點下去時 就會傳帳密變數到A系統資料庫去對應
: 如果對應正確的話 就會存session 和登入A系統
: 登入B系統方法也一樣
: http://loginCtoB.php?id=b1&pass=b11
: 問題1: 請問這是SOO的正確作法嗎?? 還是另有方法
: 問題2: 這樣會安全嗎????
: 問題3: 帳號密碼都要存在A和B和C資料庫,這樣修改應該很麻煩吧?
: 有辦法解決嗎??
: 想問看看有沒有大大用過SSO的系統@@
我做過一個系統是讓兩個網站(不同網域名稱)可以彼此互通購物車
與會員帳號。使用者在A網站登入後,連結到B網站時,在B網站也是
已登入的狀態(反之亦然)。不論有無登入,在A網站將商品放入購物車,
連結到B網站時,之前在A網站放入的商品也會出現在B網站的購物車中,
並且可以在任一網站進行結帳(不論當時購物車中包含AB哪個網站的
的商品,或者兩個都有)。
大致上的做法跟你所想的一樣,在A網站連向B網站的連結上動手腳,
先經過一個程式將session資料序列化後,傳送到B網站去。B這邊要
有一個程式專門接收A網站傳過來的資料。反過來也是一樣的做法。
一個重要的地方在於傳送的資料必須確保沒有經過篡改,否則有心人
可以直接丟資料到接收程式去,進而取得任意會員身分。這部份要小心。
我的做法是增加一個檢查欄位,用MD5去編碼session資料以及一段
只有AB兩端的程式彼此知道的key(key不會在網路上傳送),如果
資料被篡改但是檢查欄位沒有做相應的修改,接收端就會知道資料
有異狀而做相應的動作。
傳送的資料本身也要小心,不要傳送敏感資料,除非傳送過程有SSL
保護。我這邊是不傳送帳號密碼以及個人資料,只傳送購物車以及
登入狀態資料。
我這邊的狀況是AB兩網站雖然是彼此獨立,但是是共用資料庫。
不過即使兩邊資料庫分開,只要互相讀取得到彼此的資料,還是可以
做得到你的需求。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.153.19
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章