当前位置: 代码迷 >> 综合 >> 单点登录Single Sign On
  详细解决方案

单点登录Single Sign On

热度:96   发布时间:2024-01-03 23:39:25.0

单点登录SSO,说的是在一个多系统共存的环境下,用户在一个地方登陆之后,可以获得所有系统的验证,不需要在其他系统中登录

要点:

储存信息;

验证信息;

方式:

  1. 以cookie作为凭证
  2. 通过JSONP实现、
  3. 通过页面重定向的方式

cookie:

最简单的单点登陆实现方式,是使用cookie作为媒介,存放用户凭证

用户登录父级应用之后返回,一个加密的cookie,当用户访问子应用的时候,携带这个cookie,授权应用解密cookie进行校验,通过校验登录当前用户

缺点:未加密,cookie不安全,虽然通过加密可以保证安全性,但是对方掌握解密算法就不行了

不能跨域

永久储存,是一个本地文件,相对公开的数据

session

临时储存,是一个内存对象,储存私密数据

JSONP

一种解决跨域问题的方法

在父类应用中登陆后,根session匹配的cookie会存到客户端中,当用户需要登录子应用时,授权应用访问父级应用提供的JSONP接口,并在请求上带上父应用域名下的cookie,父类应用收到请求,验证用户的登陆状态,返回加密信息,子应用通过解析返回来的加密信息来验证用户,如果验证通过则登录用户

工作机制:

  • 利用动态创建一个script标签,并利用它的src实现向服务器发送一次HTTP请求,并提前声明好意一个回调函数,回调函数的函数名利用callback请求参数传递给后端
  • 后端收到来自前端的请求后,获取callback请求的请求参数并拼接一个调用函数的JS代码,并将要返回给前端的数据以实参的形式存在
  • 前端接收到来自后端的响应后,会将后端的返回内容当作JS代码来执行即调用一个函数,并用一个形参来接受后端向要传输过来的数据

缺点:较为麻烦,不安全

页面重定向

将网络请求将请求重新定向到其他位置(如网页重定向,域名重定向,路由重定向)

  相关解决方案