单点登录(Single Sign On),是指在多个应用系统中,只需要登录一次,就可以访问其他互相信任的应用系统。
现在普通的登录认证机制,是建立在Cookie、session的基础上的,用户在浏览器输入用户名、密码,应用校验成功后,会签发一组session,并将sessionId写入浏览器的Cookie中,重定向访问应用时会带上这个Cookie,应用会根据sessionId识别用户是否已登录。
CAS 单点登录机制建立在两个基础上:Cookie是不能跨域读取的,不同应用签发的session是不共享的。
不同域下的单点登录
CAS服务:负责用户的登录,登录成功后签发一个session,并将sessionIdA写入浏览器的cookie(domain: CAS域名),同时生成ticket参数并重定向到应用域名。
应用服务:若请求中有ticket参数,则去CAS服务校验,校验成功后应用服务签发一个session,将sessionIdB写入浏览器的cookie(domain: 应用域名);若请求中有cookie(domain: 应用域名)信息,session校验通过则说明在该服务已登录;否则说明未登录,则跳转到CAS服务做用户登录。
图解为:
ciaaxs2ued.png
网友评论