sso使用memcache的疑問

來源:互聯網
上載者:User
多網站間實現單點登陸
目標:
oa站 www.oa.com,論壇域 www.bbs.com,假設論壇沒有登陸功能,使用者從oa登陸成功後,點擊bbs的跳轉連結或直接在地址欄中訪問bbs,都為登陸成功狀態。

簡單架構:獨立的memcache伺服器用來做session共用;兩個站有各自的user表,但資料有一定的關聯,如oa使用者表的id和bbs使用者表的id一樣;

我的實現:
使用者從oa登陸後,在memcache中產生使用者id相關的快取資料user_id=>xxx,然後使用p3p協議產生bbs系統下的cookie,此cookie用來通過一定的密碼編譯演算法取memcache中的user_id=>xxx,使用者跳轉或是直接存取bbs時,讀取cookie資料,後端解密後根據memcache中的資料得到bbs中的使用者資料,將之寫session並標識登陸成功;

疑問:
1、我使用memcache共用這部分使用者資料是不是多餘的?
2、sso通常中講memcache作session共用是將哪部分資料共用?具體如何操作
3、sso中使用memcache作session共用這種方案中用不用cookie?是跨域嗎?
4、實現sso不使用cookie能不能實現?


回複討論(解決方案)

僅使用p3p智能實現同域中的單點登入,你多用幾款瀏覽器就可發現這一點
使用 memcache 儲存登入使用者資訊,只是為了後續檢查起來方便些,與 sso 無直接關係

僅使用p3p智能實現同域中的單點登入,你多用幾款瀏覽器就可發現這一點
使用 memcache 儲存登入使用者資訊,只是為了後續檢查起來方便些,與 sso 無直接關係



版主的意思是p3p只能寫同域的cookie,不能跨域寫cookie?
但我在本機上測試是可以跨域寫cookie的,然後我想其它域通過寫到域下的cookie來實現單點登陸,這個方案如何?
版主有沒有好些的方案?(不使用cas或類似的系統)

我曾測試過,p3p只能寫同域的cookie。
看看你是如何寫的

我曾測試過,p3p只能寫同域的cookie。
看看你是如何寫的



大概是這樣子:
本地搭建 www.a.com和www.b.com

www.b.com==> index.php 代碼是通過p3p寫入一段cookie,
www.a.com==>index.php 裡面調用 ,訪問www.a.com/index.php後就會在www.b.com域下產生cookie

1、我使用memcached共用這部分使用者資料是不是多餘的?
看你是否需要跨網站使用這部分資料,不需要時就是多餘的。

2、sso通常中講memcached作session共用是將哪部分資料共用?具體如何操作
同上。 一般在SSO中可以考慮在memcached中存放全域許可權位,做許可權的快速驗證。但你說的整合方式許可權分布在各個系統,應該不需要這部分資料。
memcached作session共用提供了一種跨進程,跨系統的一種資料傳遞方法,P3P只能小批量在域間傳遞資料,而memcached連圖片都可以傳遞,而且瀏覽器,用戶端程式,手機應用都可以。

3、sso中使用memcache作session共用這種方案中用不用cookie?是跨域嗎?
Cookie一般用來傳遞token,token一般是一次性的 資料,需要在一個系統啟動另一個系統時做為參數傳入。
跨域是指瀏覽器不同域之間的資料傳遞,memcached做為服務端組件和它沒有關係。
Token傳遞,在用戶端程式中也是需要的,是通過參數傳入

4、實現sso不使用cookie能不能實現?
通過url參數更可靠

4、實現sso不使用cookie能不能實現?
通過url參數更可靠,但需要更多地伺服器端代碼

4、實現sso不使用cookie能不能實現?
通過url參數更可靠,但需要更多地伺服器端代碼



要求直接存取其它網站也是登陸狀態,而不通過url傳參,只能用cookie吧


4、實現sso不使用cookie能不能實現?
通過url參數更可靠,但需要更多地伺服器端代碼



要求直接存取其它網站也是登陸狀態,而不通過url傳參,只能用cookie吧[/quo


主要是看有沒有伺服器端SSO介面,如果可以在伺服器端通過token進行登入驗證,那麼url參數是最方便的。如果像taobao之類只能在瀏覽器用戶端使用的SSO,那麼url參數方式就不行。

自己實現SSO,那麼必然會實現url參數傳遞的方式,為了保護token,在第三方使用時 才會出項只能使用cookie的情況。

自己實現SSO,那麼必然會實現url參數傳遞的方式,為了保護token,在第三方使用時 才會出項只能使用cookie的情況。



這種方式不能通過地址欄直接存取其它站來展現登陸狀態


自己實現SSO,那麼必然會實現url參數傳遞的方式,為了保護token,在第三方使用時 才會出項只能使用cookie的情況。



這種方式不能通過地址欄直接存取其它站來展現登陸狀態




對的。url方式限制很多,只是可靠性高,無javascript支援也可運行。
而cookie方式可以不訪問伺服器在瀏覽器內直接判斷使用者狀態的能力,對減小SSO伺服器端壓力很有協助。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.