cas 協議

cas協議是什麼?

CAS協議是一種簡單且功能強大的基於票證(ticket)的協議。它涉及一個或多個客戶端和一臺服務器。中央身份驗證服務(CAS)是Web的單點登錄/單點退出協議。用戶向中央CAS Server應用程序提供一次憑據(例如用戶ID和密碼),就可以訪問多個應用程序。客戶端嵌入在CASified應用程序中(稱爲“ CAS服務”),而CAS服務器是獨立組件:

  • CAS服務器負責驗證用戶並授予訪問應用程序
  • CAS客戶保護CAS應用程序和檢索CAS服務器的授權用戶的身份。

關鍵概念:

  • TGT存儲在TGCcookie中的(“票證授予票證”)代表用戶的SSO會話。
  • ST(服務票據),作爲傳輸GET參數的URL,代表由CAS服務器授予訪問CASified應用程序對特定用戶。

官方地址

第一次訪問app#a的單點登錄流程圖

userbrowserapp#acas server用戶通過遊覽器訪問應用用戶訪問應用a 應用a監測到沒有認證的用戶重定向遊覽器到cas服務器302 location:https://cas.example.com/cas/login?service=https%3A%2F..com%2Fget https://cas.example.com/cas/login?service=https%3A%2F..com%2Fcas判斷是否有sso session 存在,沒有session存在返回登錄頁面post https://cas.example.com/cas/login?service=https%3A%2F..com%2F 帶上用戶名密碼認證用戶用戶認證成功,生成sso session 並生成 TGT 存在遊覽器cookie裏面 Set-Cookie: CASTGC=TGT-2345678 302 location https://app.example.com/?ticket=ST-12345678get https://app.example.com/?ticket=ST-12345678客戶端帶上ticket請求cas校驗ticket get https://cas.example.com/serviceValidate?service=https%3A%2F..com%2F&ticket=ST-12345678cas返回 [200] XML Content設置cookie,重定向到前端業務地址 Set-Cookie: JESSIONID=12345678 302 location https://app.example.com/get https://app.example.com/: appsession合法響應內容渲染頁面userbrowserapp#acas server

第二次訪問相同系統app流程

userbrowserapp#acas server用戶通過遊覽器訪問應用遊覽器帶上cookie訪問應用a校驗session通過返回頁面渲染頁面get https://cas.example.com/cas/login?service=https%3A%2F..com%2Fuserbrowserapp#acas server

第一次訪問第二個app app#b

userbrowserapp#bcas server用戶通過遊覽器訪問應用get https://app2.example.com應用b檢測到沒有認證的用戶重定向遊覽器到cas服務器 302 location:https://cas.example.com/cas/login?service=https%3A%2F..com%2Fget https://cas.example.com/cas/login?service=https%3A%2F..com%2F校驗TGT 判斷是否存在 sso session用戶認證成功 302 location https://app.example.com/?ticket=ST-12345678get https://app.example.com/?ticket=ST-12345678客戶端帶上ticket請求cas校驗ticket get https://cas.example.com/serviceValidate?service=https%3A%2F..com%2F&ticket=ST-12345678cas返回 [200] XML Content設置cookie,重定向到前端業務地址 Set-Cookie: JESSIONID=12345678 302 location https://app.example.com/get https://app.example.com/: appsession合法響應內容渲染頁面userbrowserapp#bcas server

官方時序圖

正常單點登錄流程

代理單點登錄流程

代理單點登錄流程 沒看懂要用在那種場景

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章