1.cas相当于一个web应用,应配置在一台电脑上,作为cas认证服务器。
首先有三个URL:
登录URL:cas的登录认证url(假设为:https://cas/login)
验证URL:cas的验证ticket(票据)url
登出URL:cas的登出url(假设为:https://cas/logout)
1、浏览器首先访问页面(假设为:https://myweb/weblogin 并假设登录后首页为https://myweb/index.jsp),fileter过滤器首先会对cookie验证,如果不成功跳转到cas登录认证url
备注1:
其中这个url会是这样的,https://cas/login?service=https://myweb/index.jsp,会在跳转到cas认证界面,如果认证成功,应该跳到那个界面呢?登录成功当然是跳到用户首页,所以后面这个地址参数,就是密码输对后跳到业务系统内部首页的地址,这个地址是在web.xml里面配置cas拦截器配置的参数,如果有多个业务系统,那么每个业务系统的web.xml里面都会有配置这个参数,表示认证成功后将跳转到该业务系统的首页。
备注2:
当然出于安全性的考虑,可以把service后面的参数进行加密,跳转前进行解密,然后跳转。
2、cas进行认证,但是认证这个功能其实不是cas服务器负责的,通常是LDAP。
3、认证成功后,首先会生成一个随机字符串ticket(票据),只能使用一次,然后cas将请求重定向到原来的url,但是会带上ticket,https://myweb/weblogin?ticket=gdfsdfgKfse 。
4、收到ticket后,应用程序需要调用验证url进行验证,返回一个NetID给应用程序以及返回一个特殊cookie(ticket-granting cookie:关闭浏览器后cookie自动过期)给浏览器。
备注1 casUrl验证过程:
cas通过内部的数据库对其进行判断。如果判断是有效性,则返回一个NetID给应用程序,随后cas将ticket作废,返回一个cookie给浏览器)。
5、以后访问其它第三方业务系统,就通过cookie进行,如果关闭浏览器,那么cookie就过期,同理,cas的登出url https://cas/logout也是设置cookie过期,或者删除cookie。