单点登录

布满荆棘的人生 2021-11-11 04:10 530阅读 0赞

什么是单点登录?

单点登录(Single Sign On)说的简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其它系统中登录。也就是用户的一次登录能得到其它所有系统的信任。

1.以Cookie作为凭证媒介

这是最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。用户登录父应用之后,应用返回一个加密的cookie。当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,检验通过则登录当前应用。

aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81ODczMjczLThiZWY2OWUwZjllM2Q3YmQuanBnP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy8xMjQwJnlub3RlbWR0aW1lc3RhbXA9MTU2NDg4NzE2OTg3MA

这个方案相应会存在一些问题:

  • cookie不安全
  • 不能跨域实现免登陆

2.通过JSONP实现

这个方案的出现场景,利用了它的好处,解决跨域问题。但是也有它独特的点(可利用的场景问题)

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

aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81ODczMjczLTNlYTQ3Y2ZhZGVlN2NmMjUuanBnP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy8xMjQwJnlub3RlbWR0aW1lc3RhbXA9MTU2NDg4NzE2OTg3MA

缺点和局限性:

这种方式虽然能解决跨域问题,但是安全性其实跟把信任存储到Cookie是差不多的,如果一旦加密算法泄漏了,攻击者可以再本地建立一个实现了登录接口的假冒父应用,通过绑定Host来把子应用发起的请求指向本地的假冒父应用,并作出回应,因为攻击者完全可以按照加密算法来伪造响应请求,子应用接收到这个响应之后一样可以通过验证,并且登录特定用户。

3.通过页面重定向的方式

通过父应用和子应用来回重定向中通信,实现信息的安全传递。

父应用提供一个GET方式的登录接口,用户通过子应用重定向连接的方式访问这个接口,如果用户还没登录,则返回一个登录页面,用户输入账号密码进行登录。如果用户已经登录了,则生成加密的Token,并且重定向到子应用提供的验证Token的接口,通过解密和校验之后,子应用登录当前用户。

aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy81ODczMjczLTNkM2UwMzM2NTVlZTZmNTEuanBnP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy8xMjQwJnlub3RlbWR0aW1lc3RhbXA9MTU2NDg4NzE2OTg3MA

这种方式较前面两种方式,接解决了上面两种方法暴露出来的安全性问题和跨域的问题,但是并没有前面两种方式方便。 安全与方便,本来就是一对矛盾。

发表评论

表情:
评论列表 (有 0 条评论,530人围观)

还没有评论,来说两句吧...

相关阅读

    相关 登录

    Shiro 1.2 开始提供了 Jasig CAS 单点登录的支持,单点登录主要用于多系统集成,即在多个     系统中,用户只需要到一个中央服务器登录一次即可访问

    相关 登录

    业务需要,正在研究. 基本有以下三种方案 1.集中管理Session. 实现很简单,但缺点是 每次页面刷新都需要访问一次或两次 Session管理服务器,

    相关 登录

    1:什么事单点登录: SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主

    相关 登录

    一、单系统登录机制 1、http无状态协议   web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务

    相关 登录

    初识单点登录 最初接触到单点登录要追溯到3年多以前了,那时候看到的只是passport,当时要做全国所有社区的登录,然后就照着内部文档写了代码,然后就接入了(这里要提一句

    相关 登录

    以Cookie作为凭证媒介 最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。 用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用

    相关 登录

    什么是单点登录? 单点登录(Single Sign On)说的简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其它系统中登录。也就是用户的一次登录能得到其它所有