尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

统一认证中心CAS登录流程深度解析

统一认证中心CAS登录流程深度解析 结构设定:假设当前的系统结构为A系统是cas servercas.com), 两个客户系统B(b.com)和Cc.com)。第一步登录B系统当用户先访问B系统时此时尚未登录完整的处理流程如下核心阶段一尝试访问被拦截重定向用户请求资源用户在浏览器访问B系统的受保护页面https://b.com/profile。B系统未登录检测B系统检查用户的Session或Cookie发现没有登录凭证。B系统告知CAS地址B系统构造一个CAS登录地址生成一个Service参数即登录成功后想让CAS把用户送回哪里去。这个地址通常是https://b.com/cas-callback。重定向至CASB系统通过302重定向将用户浏览器引导至CAS服务器请求示例Location: https://cas.com/login?servicehttps://b.com/cas-callback核心阶段二统一认证 (在CAS Server)CAS检查全局登录状态CAS检查浏览器带来的Cookie中是否有自己的全局票据通常叫TGCTicket Granting Cookie。进入登录页如果是首次访问没有TGCCAS返回登录页面用户输入用户名和密码。CAS创建全局会话CAS验证用户凭证如查数据库、LDAP等。验证成功后CAS创建TGTTicket Granting Ticket存于服务端并生成TGC存于客户端浏览器Cookie。此时全局单点登录会话已建立用户之后再访问C系统时就不会再看到登录页了。核心阶段三派发票据返回B系统CAS生成服务票据CAS生成一个一次性有效的服务票据STService Ticket。这个ST与用户的身份以及B系统提供的service参数https://b.com/cas-callback是绑定在一起的。重定向回B系统CAS将浏览器重定向回B系统最开始指定的那个地址并附上ticket参数。请求示例Location: https://b.com/cas-callback?ticketST-123456-abcde核心阶段四B系统后台校验建立局部会话B系统接收票据浏览器带着ST票据访问B系统的回调接口https://b.com/cas-callback?ticketST-123456-abcde。B系统后台校验关键环节B系统在后台用户不可见发起一个HTTP请求给CAS服务器https://cas.com/serviceValidate?servicehttps://b.com/cas-callbackticketST-123456-abcde。这是一个后台到后台的调用通常也称为CAS Client向CAS Server的验证validation。CAS确认票据有效CAS验证ST确实是它刚刚签发的、没有过期、并且service地址也匹配。验证通过后CAS返回用户的登录名及相关属性给B系统的后台。B系统创建局部会话B系统收到CAS返回的用户名比如user123。B系统在自己的服务器端创建一个Session局部会话并在浏览器中写入B系统的Cookie如JSESSIONID。用户正式登录B系统。核心阶段五完成访问响应页面B系统的回调接口处理完后将页面重定向回用户最初想访问的地址https://b.com/profile或者直接展示首页。展示内容浏览器展示B系统内的页面给用户。时序图第二步登录C系统由于前一步用户已通过登录B系统完成了认证登录C流程则大幅简化用户访问C系统C系统发现未登录 - 重定向到cas.com/login?servicec.com/callback。CAS检查浏览器发现它早就带着步骤7中写入的TGC所以不再提示登录。立即生成ST重定向回C系统的回调地址。C系统后台拿着ST去CAS换用户信息。C系统创建自己的Session用户直接登录C系统。
返回列表