日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(SSO)单点登录原理和总结

發布時間:2024/1/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (SSO)单点登录原理和总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:什么是單點登錄(single Sign-On)

  SSO 是一種統一認證和授權機制,指訪問統一服務器不用應用中的受保護資源的同一用戶,只需要登錄一次,即通過一個應用中的安全驗證后,

再訪問其他應用中的受保護資源時,不再需要重新登錄驗證。

二:單點登錄解決了什么問題

  解決了用戶只需要登錄一次就可以訪問所有相互信任的應用系統,而不用重復登錄

  例如:CSDN中的論壇應用,博客應用,下載應用模塊。我們只要在CSDN中訪問任何一個應用后,再訪問其他應用站點的時候就不需要重新登錄

三:總結在項目開發中的一些體會。看如下流程圖:

一:用戶第一次訪問站點。

1.用戶第一次訪問>www.a.com,這個時候站點下沒有記錄之前登錄的Cookie

2.所有在發現沒有用戶登錄的情況下>跳轉到Login頁面

3.用戶現在輸入用戶名,密碼登錄,請求SSO登錄API,登錄成功,在Redis里面緩存一條Key=SessionID,Values = UserInfo這樣一條記錄,緩存時間可配置。Response返回登錄驗證狀態,和用戶信息。

4.用戶登錄成功,記錄下憑證,即此刻的SessionID寫入Cookie,然后跳轉到www.A.com

5.這時候有了Cookie,將記錄的Cookie,也就是SessionID請求SSO驗證token接口,因為登錄成功記錄了Key=SessionID,所以可以獲取到Values = 用戶信息,Response返回用戶信息

6.用戶現在去訪問www.B.com站點,B站點無Cookie,這里的SessionID還是當前會話的SessionID,所以去請求SSO  主站點驗證Token接口,發現存在Key=SessionID,返回登錄狀態成功,用戶信息。在B站點下記錄Cookie即token配置

這樣用戶第一次訪問A站點,從第一次登錄,到訪問其他站點的流程就走完了

?

二:用戶中途關閉瀏覽器,然后打開瀏覽器,訪問B站點

1.發現存在Cookie,即Token憑證,去SSO站點,驗證發現存在Key=SessionID,獲取Values 講UserInfo返回給用戶,返回用戶在登錄狀態。這樣訪問應用之前訪問過的站點依舊在登錄狀態

2.如果用戶在執行訪問第二個應用,這個時候redis緩存的登錄狀態過期,則返回憑證驗證失敗。這個時候第二個應用跳轉到登錄狀態,走用戶登錄的流程以及后續的驗證流程

注意:記錄Cookie的過期時間應該保證與redis的過期時間一致,不能在redis過期時間之后過期,這樣在用戶此時訪問第一個應用站點的時候,發現Cookie不存在,就會通過SessionID去驗證憑證,發現這時候是過期重新登錄,會講此時的登錄狀態寫入Cookie.

?

三:登出

只需要清除本地Cookie,調用SSO站點接口清除登錄緩存的狀態即可實現登出

?

四.注意:

在實際的項目開發中會遇到各種情況,比如子站點和SSO主站點的接口調用參數約束,簽名,加密等。以及純html站點的實現SSO登錄接口,或者 純.NET應用網站的跳轉接口,這些都要區別開來。只有在詳細了解SSO實現單點登錄的原理之后進行開發才能做到事半功倍的效果。

轉載于:https://www.cnblogs.com/but009/p/6974031.html

總結

以上是生活随笔為你收集整理的(SSO)单点登录原理和总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。