CAS是Central Authentiction Service 的缩写,中央认证服务,一种独立开放指令协议.CAS是Yale大学发起的开源项目.旨在为Web应用系统提供一种可靠的单点登录方法,CAS在2004年12月正式称为JA-SIG的一个项目.
特点:
1.开源的企业级单点登录解决方案.
2.CAS Service为需要独立部署的Web应用.
3.CAS Client 支持非常多的客户端(这里指单点登录系统中的各个Web应用),包括Java .NET PHP等
首次登录验证,其原理如下图所示:
1、第一次跳转:客户端访问应用系统,应用系统判断Session发现为定路,返回302跳转到sso登录页面,并传递service参数给sso,该service参数有两个作用:
2、service一般传递应用系统url地址,用于sso认证通过后回跳到应用系统;
3、service参数同时会被cas服务端的作为cas客户端的唯一标记记录下来,用于后期匹配相应的认证凭据;
4、第二次跳转:浏览器显示登录页面,用户输入账号密码登录成功后,sso会返回302跳转回到原来请求的应用系统页面,并携带ticket参数,作为认证票据,同时通过Set-Cookie向浏览器记录TGT,(TGT的作用将在下一个应用系统需要登录的时候体现出来,是避免重复登录的关键)
5、一次后台验证:应用系统接收到带有ticket的请求后,向从后台直接向sso服务器发起一个http请求,将service和ticket作为参数,用于验证ticke