跨域SSO(CAS)实现过程

原文出处:https://www.cnblogs.com/btgyoyo/p/10722010.html

跨域SSO(CAS)实现过程

  1. 用户访问产品 a,域名是 http://www.a.cn。

  2. 由于用户没有携带在 a 服务器上登录的 a cookie,所以 a 服务器重定向到SSO 服务器的地址。

  3. 由于用户没有携带在 SSO 服务器上登录的 TGC,所以 SSO 服务器判断用户未登录,给用户显示统一登录界面。

  4. 登录成功后,SSO 服务器构建用户在 SSO 登录的 TGT,同时返回一个 http 重定向(包含 sso 服务器派发的 ST )。

  5. 重定向的 http response 中包含写 cookie。这个 cookie 代表用户在 SSO 中的登录状态,它的值是 TGC。

  6. 浏览器重定向到产品 a。此时重定向的 url 中携带着 SSO 服务器生成的 ST。根据 ST,a 服务器向 SSO 服务器发送请求,SSO 服务器验证票据的有效性。验证成功后,a 服务器知道用户已经在 sso 登录了,于是 a 服务器构建用户登录 session。

  7. 用户访问产品 b,域名是 http://www.b.cn。

  8. 由于用户没有携带在 b 服务器上登录的 b cookie,所以 b 服务器重定向到SSO 服务器,去询问用户在 SSO 中的登录状态。

  9. 浏览器重定向到 SSO服务器。由于已经向浏览器写入了携带 TGC 的cookie,所以此时 SSO 服务器可以拿到,根据 TGC 去查找 TGT,如果找到,就判断用户已经在 sso 登录过了。

  10. SSO 服务器返回一个重定向,重定向携带 ST。

  11. 浏览器带 ST 重定向到 b 服务器。

  12. b 服务器根据票据向 SSO 服务器发送请求,票据验证通过后,b 服务器知道用户已经在 sso 登录了,于是生成 b session,向浏览器写入 b cookie。


 

发布了17 篇原创文章 · 获赞 13 · 访问量 1142

猜你喜欢

转载自blog.csdn.net/Tianc666/article/details/104416276