单点登录学习笔记

单点登录(SSO)概述

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

SSO体系结构:

1.认证中心

2.用户与账号系统、用户数据获取接口

3.客户端模块即授权验证(用户请求系统时,首先要对请求进行拦截)

4.令牌(token)  可以看作钥匙

SSO认证流程:工作原理和工作过程

1.浏览器发起访问系统的请求

2.客户端模块对用户请求进行拦截

3.验证token是否存在(不存在时重定向到登陆界面)

4.token存在时验证token是否有效(有效时可以访问系统)

5.token无效时重定向到登陆界面

6.进入登录界面,登录成功后进行授权(授权失败时提示授权失败)

7.授权成功则生成token令牌

8.生成token之后,再次返回到资源请求后重新再次进行验证

SSO相关核心技术:

1.HTTP协议的基础知识(无状态的协议)

HTTP处理的一般分为三个步骤:接收请求、处理请求、返回结果。

因为HTTP是无状态的,所以无法判断第二个问题中问的是什么多少钱一支。

由于以前浏览器的请求都是用于请求的静态的资源,为了保持请求的高效,所以将HTTP设为了无状态,但随着不断的发展,HTTP无状态的已经无法处理更多的问题了,所以就需要对会话的维持:

cookie:每次网络请求中,服务端返回给每个请求的唯一标识,每次发请求时会被传送【客户端】

session:服务端维护的那个map结构,存的是每个唯一标识以及对应的值【服务端】

为了避免缓存对测试结果的影响,我们可以使用隐身模式来进行试验(隐身窗口没有缓存)

2.如下进行实例的演示:

第一次请求浏览器端如下:

然后在服务端中:session.setAttribute('what','铅笔')

第二次请求浏览器端如下:

第二次请求服务端需要做的处理:(获取唯一标识,并返回结果)

String what = (String)session.getAttribute("what");   //获取存在服务端session中那么为what的唯一标识值

String resp  = null;

if ("铅笔".equals(what)){

resp = "$1";

}

else {

resp = "i don't know"

}

同域下

猜你喜欢

转载自www.cnblogs.com/fireporsche/p/9385104.html