SSO单点登录CAS实战主讲人:西越Cas单点登录简介Cas单点登录解析Cas单点登录实例Cas单点登录简介SSO简单介绍单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CASCAS简单介绍CAS(CentralAuthenticationService)是Yale耶鲁大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点登录方法,CAS在2004年12月正式成为JA-SIG的一个项目。Cas单点登录简介CAS特点1、开源的企业级单点登录解决方案,源码拿出来就能二次开发,DIY比较容易。2、CASServer为需要独立部署的Web应用,打包放到web中间件(比如Tomcat)里面就可以立即开始工作,方便快捷,配置简单,傻瓜式使用方式,也可以对一些功能进行扩展,比如用户认证方式。3、CASClient支持非常多的客户端(这里指单点登录系统中的各个Web应用),包括Java,.Net,PHP,Perl,Ruby等。Cas单点登录简介IntelligentHardworkingModestCas单点登录解析术语:缩写全称解释SSOSingleSignOn单点登录TGTTicketGrantingTicket用户身份认证凭证票据(俗称大令牌,或者说票根,他可以签发ST)STServiceTicket服务许可凭证票据(随机参数,每次服务端校验后作废)TGCTicketGrantingCookie存放用户身份认证凭证票据(存放令牌)的cookie,浏览器关闭即失效(携带到浏览器)访问服务:SSO客户端发送请求访问应用系统提供的服务资源。01定向认证:SSO客户端会重定向用户请求到SSO服务器。02用户认证:用户身份认证。03发放票据:SSO服务器会产生一个随机的ServiceTicket。04Cas单点登录解析原理:验证票据:SSO服务器验证票据ServiceTicket的合法性,验证通过后,允许客户端访问服务。05传输用户信息:SSO服务器验证票据通过后,传输用户认证结果信息给客户端。06Cas单点登录解析系统ACASServer(认证中心)32415图解1:1、用户浏览器访问系统A需登录受限资源,此时进行登录检查,发现未登录,然后进行获取票据操作,发现没有票据。2、系统A发现该请求需要登录,将请求重定向到认证中心,获取全局票据TGT操作,没有,进行登录。3、认证中心呈现登录页面,用户登录,登录成功后,认证中心重定向请求到系统A,并附上认证通过ticket令牌(即ST),同时会在Cookie中设置一个GASTGC(CASServer的Cookie),此时认证中心同时生成了全局票据。4、此时再次进行登录检查,发现未登录,然后再次获取票据操作,此时可以获得票据(令牌),系统A与认证中心通信,将Cookie中的TGC携带到CASServer,CASServer根据这个TGC查找与之对应的TGT,验证令牌有效,证明用户已登录。5、系统A将受限资源返给用户。Cas单点登录解析系统BCASServer(认证中心)32415图解2:1、浏览器访问另一应用B需登录受限资源,此时进行登录检查,发现未登录,然后进行获取票据操作,发现没有票据。2、系统B发现该请求需要登录,将请求重定向到认证中心,获取全局票据操作,获取全局票据,可以获得,认证中心发现已经登录。3、认证中心发放临时票据(令牌),并携带该令牌重定向到系统B。4、此时再次进行登录检查,发现未登录,然后再次获取票据操作,此时可以获得票据(令牌),系统B与认证中心通信,验证令牌有效,证明用户已登录。5、系统B将受限资源返回给客户端。Cas单点登录解析Request1【第一步】终端第一次访问CAS—Client1,AuthenticationFilter会截获此请求:1、首先,检测本地Session没有缓存有用户信息;2、然后,检测到请求信息中没有ST;3、所以,CAS—Client1将请求重定向到CAS—Server,并传递Service(也就是要访问的目的资源地址,以便登录成功过后转回该地址),例:【https://cas:8443/cas/login?service=http0%3A8081%2F】【第二步】终端第一次访问CAS—Server:1、CAS—Server检测到请求信息中没有TGC,所以跳转到自己的登录页;2、终端输入用户名、密码登录CAS—Server,认证成功后,CAS—Server会生成登录票据—TGT(集成了用户信息与ST),并随机生成一个服务票据—ST与CAS会话标识—TGC。TGT实际上就是Session,而TGC就是这标识这个Session存到Cookie中的...