初探單點登入 SSO

發表於2019-05-11
單點登入單點登入是一種訪問控制,在多個軟體應用中,使用者只需登入其中一個應用,就可以成功訪問其他應用;同樣,使用者只需登出其中一個應用,就可以成功登出其他應用。當一個公司產品線越來越複雜,做的東西越來越多,考慮到使用者的便利性和業務的交集,單點登入也就變得越來越必然。譬如,阿里巴巴中的淘寶網,天貓,聚划算和一淘,考慮下面的場景:我們使用者登入淘寶網購物,緊接著朋友打電話說出去玩,於是開啟聚划算的時候你會發現,你已經登了聚划算!可能這些細節都被大多數人忽略了(被誰給慣壞了),但如果要讓使用者再次手動登入聚划算,使用者體驗可想而知。這種便利性就是單點登入所帶來的。
在單點登入中,認證系統會為每一個應用分配一把鑰匙,也就是說有了這把鑰匙,賬號密碼的輸入就可以免去了。這把鑰匙就藏在瀏覽器的 cookie 中。應用獲取鑰匙有兩種方法:
一,成功登入應用A 後,認證系統為應用A 分配一把鑰匙;同時,應用A 憑藉自己已經成功登入,幫其他應用代領鑰匙。下一次訪問應用B 的時候,應用B 就能成功免登入了。
二,這裡認證系統的域名是應用A 的子域名,即如果應用A 是 example.com,認證系統可能是個 passport.example.com。當成功登入應用A 後,認證系統為應用A 分配一把鑰匙;下一次訪問應用B 的時候,web 頁面被重定向到認證系統,因為認證系統的域名是應用A 的子域名,所以應用A 的鑰匙,即 cookie 被帶上,從而使用者的訪問得到了信任,認證系統為應用B 分配鑰匙,頁面被重定向到應用B。
接下來會對淘寶網和京東商城的網站進行單點登入例項分析。
淘寶網的單點登入策略
來看看淘寶網做法。
登入了 taobao.com 後,下面是所產生的 cookie,也就是說認證系統已經為應用taobao.com 分配了鑰匙,但這裡並沒有 etao.com 或者 tmall.com 的 cookie,認證系統還未為他們分配鑰匙。


剩餘全文點此檢視
回覆

相關文章