900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > sso 登出_cas sso单点登录 登录过程和登出过程原理说明

sso 登出_cas sso单点登录 登录过程和登出过程原理说明

时间:2020-10-31 10:20:52

相关推荐

sso 登出_cas sso单点登录  登录过程和登出过程原理说明

CAS大体原理我就不说了,网上一大把,不过具体交互流程没说清楚,所以有这篇文章,如果有错误,请多多指教

登录过程

用户第一次访问一个CAS 服务的客户web 应用时(访问URL :http://192.168.1.90:8081/web1 ),

部署在客户web 应用的cas AuthenticationFilter ,会截获此请求,生成service 参数,然后redirect 到CAS 服务的login 接口,

url为https://cas:8443/cas/login?service=http%3A%2F%2F192.168.1.90%3A8081%2Fweb1%2F&logoutUrl=http%3A%2F%2F192.168.1.90%3A8081%2Fweb1%2Flogout%2F,

这个URL中有2个地址,一个是登录完成后的跳转地址,另外一个是用户登出时 访问的当前服务登出URL地址,后面这个地址保存在Cas server中,用户登出的时候使用

认证成功后,CAS 服务器会生成认证cookie ,写入浏览器,同时将cookie 缓存到服务器本地,

CAS 服务器还会根据service 参数生成ticket,ticket 会保存到服务器,也会加在url 后面,

然后将请求redirect 回客户web 应用,url 为http://192.168.1.90:8081/web1/?ticket=ST-5-Sx6eyvj7cPPCfn0pMZuMwnbMvxpCBcNAIi6-20 。

这时客户端的AuthenticationFilter 看到ticket 参数后,会跳过,由其后面的TicketValidationFilter 处理,

TicketValidationFilter 会利用httpclient 工具访问cas 服务的/serviceValidate 接口,

将ticket 、service 都传到此接口,由此接口验证ticket 的有效性,TicketValidationFilter 如果得到验证成功的消息,

就会把用户信息写入web 应用的session里。至此为止,SSO 会话就建立起来了,以后用户在同一浏览器里访问此web 应用时,

AuthenticationFilter 会在session 里读取到用户信息,所以就不会去CAS 认证,如果在此浏览器里访问别的web 应用时,AuthenticationFilter 在session 里读取不到用户信息,

会去CAS 的login 接口认证,但这时CAS 会读取到浏览器传来的cookie ,所以CAS 不会要求用户去登录页面登录,只是会根据service 参数生成一个ticket ,

然后再和web 应用做一个验证ticket 的交互。

登出过程

CAS server接受登出请求后,会检测用户的TCG Cookie,把对应的session清除,同时会找到所有通过该TGC sso登录的应用服务器URL提交请求,所有的回调请求中,包含一个参数logoutRequest,访问这个登出URL,

所有收到请求的应用服务器(就是是CAS client)会解析这个参数,取得sessionId,根据这个Id取得session后,把session删除。这样就实现单点登出的功能,用户无法在这个具体应用上继续操作了,只能重新登录才行。

注:以上内容根据网络内容整理而成,如果侵犯到您的权益,请联系我

原文:/hubaoxi/p/4977058.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。