跨域SSO(CAS)實現過程

2021-10-03 01:37:19 字數 869 閱讀 7446

原文出處:

使用者訪問產品 a,網域名稱是 

由於使用者沒有攜帶在 a 伺服器上登入的 a cookie,所以 a 伺服器重定向到sso 伺服器的位址。

由於使用者沒有攜帶在 sso 伺服器上登入的 tgc,所以 sso 伺服器判斷使用者未登入,給使用者顯示統一登入介面。

登入成功後,sso 伺服器構建使用者在 sso 登入的 tgt,同時返回乙個 http 重定向(包含 sso 伺服器派發的 st )。

重定向的 http response 中包含寫 cookie。這個 cookie 代表使用者在 sso 中的登入狀態,它的值是 tgc。

瀏覽器重定向到產品 a。此時重定向的 url 中攜帶著 sso 伺服器生成的 st。根據 st,a 伺服器向 sso 伺服器傳送請求,sso 伺服器驗證票據的有效性。驗證成功後,a 伺服器知道使用者已經在 sso 登入了,於是 a 伺服器構建使用者登入 session。

使用者訪問產品 b,網域名稱是 

由於使用者沒有攜帶在 b 伺服器上登入的 b cookie,所以 b 伺服器重定向到sso 伺服器,去詢問使用者在 sso 中的登入狀態。

瀏覽器重定向到 sso伺服器。由於已經向瀏覽器寫入了攜帶 tgc 的cookie,所以此時 sso 伺服器可以拿到,根據 tgc 去查詢 tgt,如果找到,就判斷使用者已經在 sso 登入過了。

sso 伺服器返回乙個重定向,重定向攜帶 st。

瀏覽器帶 st 重定向到 b 伺服器。

b 伺服器根據票據向 sso 伺服器傳送請求,票據驗證通過後,b 伺服器知道使用者已經在 sso 登入了,於是生成 b session,向瀏覽器寫入 b cookie。

跨域實踐之jsonp實現跨域

jsonp實現跨域是一種十分普遍的方法,它利用的是script標籤裡的src屬性可以跨域請求的功能來實現跨域,那這篇部落格就來實踐一下jsonp這種方法 既然要跨域,那我們先來看下不用jsonp,直接請求的結果 很顯然,由於瀏覽器的同源策略,響應被阻擋了,以至於我們無法獲取到服務端傳來的資料 接下來...

vue實現跨域

在請求的資源上沒有 訪問控制允許源 標頭。因此,http loalhoal 8081 是不允許訪問的。出現這個報錯就說明,瀏覽器限制了跨域,需要設定跨域 一 後台更改header header access control allow origin 允許所有 訪問 header access con...

JSONP跨域實現

跨域問題是由於瀏覽器為了防止csrf攻擊,避免惡意攻擊而帶來的風險 而採取的同源策略限制 當乙個頁面中使用xmlhttprequest物件傳送http請求時 xhr請求 必須 保證當前頁面和請求的物件是同源的,即協議,網域名稱和埠號要完全一致,否則 瀏覽器就會阻止此跨域請求返回的資料 同源策略 協議...