sso 单点登录2- “今生发展”

一.单点登录sso

1.1 定义概述

        SSO(Single Sign-On,单点登录)是身份管理中的一部分。SSO的一种较为通俗的定义是SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。即用户只需要记住一组用户名和密码就可以登录所有的权限系统,它是目前比较流行的企业业务整合的解决方案之一。简而言之:“能够一次登录,多次使用,一处登录,处处登录;一处注 销,处处注销"

sso,单点登录是目前比较流行的企业业务整合的解决方案之一。较大的企业内部,一般都有很多的业务支持系统为其提供相应的管理和IT服务。这些不同的系统往往是不相通的,需要实现相互信任,实现一次登录,可以不必多次登录。

1.2 单点登录所需角色和技术

#单点登录的核心技术
1.多个应用系统,1个认证中心
2.两大核心功能:产生信任并存储;通过访问资源进行验证信任

身份认证技术:
1. cas(单点登录)
2. Spring Security OAuth2(第三方登录授权:QQ登陆)
3. jwt (客户端token:原生)
安全控制框架:
1. spring-security
2. shiro:

1.3 作用

单点登录要解决的就是,用户只需要登录一次就可以访问所有相互信任的应用系统。

如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯
掉。
现实生活案例如下:
1.动物园的大门收费,各个园区也收费,比较麻烦。

 2.使用单点登录,一键买通票,如下

二.单点登录架构

2.1 单点登录

基本逻辑原理:

1. 授权服务器(认证中心)(一个)保存了全局的一份session,客户端(多个)各自保存自己的session
2. 客户端登录时判断自己的session是否已登录,若未登录,则(告诉浏览器)重定向到授权服务器(认证中心)
(参数带上自己的地址,用于回调)
3. 授权服务器判断全局的session是否已登录,若未登录则定向到登录页面,提示用户重新登录;若登录成
功后,授权服务器重定向到客户端(参数带上token【一个凭证号】),同时授权服务端保存用户信息至全局session。
4. 客户端收到token后,客户端将token保存至本地session,从而携带token访问目的资源。

2.2 单点登出

三  常见单点登录方案

3.1 常见方案 

单点登录常见的3种方案:
1.cookies
2.session的复制同步
3.分布式的session方式
目前的大型网站都是采用分布式session的方式。

3.2 基于cookie的单点登录

使用cookie作为媒介,存放用户凭证,用户登录父应用后,返回一个加密的cookie串,当用户访问子应用的时候,携带上这个cookie,验证解密cookie的合法性,校验通过则登录当前用户。
缺点:cookie不安全;不能实现跨域

3.3  基于session复制同步

基于session复制同步
在登录server1成功之后,将session的信息同步到server2上不就行了,看似完美,但是,如果机器是50-100台,没有同步完,用户又访问了server100,server100还是没有session信息的问题,所以还是有问题的,存在session延迟复制问题。

3.4 基于分布式session

集团大公司,存在很多系统分割为多个子系统,独立部署后,不可避免的会遇到会话管理的问题,类似这样的电商网站一般采用分布式Session实现。再进一步可以根据分布式Session+redis,建立完善的单点登录或账户管理系统。
原理:
1.用户第一次登录时,将会话信息(用户Id和用户信息),比如以用户Id为Key,写入分布式
Session; 2. 用户再次登录时,获取分布式Session,是否有会话信息,如果没有则调到登录页;
3. 一般采用Cache中间件实现,建议使用Redis,因此它有持久化功能,方便分布式Session宕机后,可以从持久化存储中加载会话信息;
4. 存入会话时,可以设置会话保持的时间,比如15分钟,超过后自动超时;
结合Cache中间件实现的分布式Session,可以很好的模拟Session会话。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值