单点登录功能的实现

  • 时间:
  • 浏览:
  • 来源:互联网
基于cookie:
	使用Cookie作为媒介,存放用户凭证,用户登录以后返回一个加密的cookie访问子应用的时候,携带上这个cookie,授权应用解密cookie,校验通过以后就登录此应用。但是cookie实现单点登录不安全而且不可以实现跨域登录。

分布式session实现:
	在用户注册时将用户的信息作为一组键值对信息存入到session中返回一个sessionid给客户端,在用户再次登录的时候比较当前登录的用户id是否与session中的id相同弄然后在进行匹配,如果校验成功则将信息存入到cookie中,如果校验失败返回登录页面重新登录。

SSO(单点登录技术):
	在多个应用系统中只需要登录一次就可以访问其他相互信任的引用系统。
	同一个域下(session模式):用户进行第一次登录,登录以后会将用户信息存储到session中,然后session将自身存储到cookie中,等到用户进行第二次登录的时候,后台校验session中是否存在用户的信息。
	跨域(CAS模式):1、用户第一次访问该网站,由CAS Client处理以后重定向到CAS server,在其中发现没有cookie的话再重定向到CAS server 的登录页面,同时URL中携带网站的地址,便于认证成功以后进行一个跳转;2、在用户登录成功以后根据用户名和用户密码生成一张票TGT(Ticket Granting ticket)存储在服务器,再用TGT生成一个一次性验证票据ST(Service Ticket)以及TGC(Ticket Granting Cookie)用于存放用户信息并由server发送给Client端,最后返回ST和Cookie到浏览器;3、浏览器携带ST访问想要访问的地址;4、浏览器接收到ST以后再到CAS server中去验证,验证通过以后就会重定向到最开始URL中需要访问的地址并显示页面信息,此时第一次登录到此结束;5、再去登录别的具有CAS的网站,再由CAS Client重定向到CAS Server中进行验证,但是此时具有TGC就不用再次登录,然后CAS server去生成一个ST然后重定向到需要访问的页面;7、再由浏览器中接收到的ST去CAS Server中做验证,验证成功就会显示页面信息
注:CAS中CAS Client负责处理客户端对收保护资源的访问的请求,需要重新登录的时候重定向到CAS server;CAS server需要进行独立部署主要负责对于用户的认证工作。

单点登录跨域的实现:
	首先使用Spring-session将session存储在redis中,就可以实现每个子系统都会访问到session;实现跨域中所有的系统都使用一个session,就是在每一个cookie中设置相同的cookie```

本文链接http://metronic.net.cn/metronic/show-53498.html