SSO认证服务器实现原理(一)
2016-09-18 10:51
176 查看
单Web应用登录,主要涉及到认证、授权、会话建立、取消会话等几个关键环节。在多系统,每个系统也会涉及到认证、授权、会话建立取消等工作。那我们把每个系统的认证工作抽象出来,放到单独的服务应用中取处理,我们把这个负责认证工作的系统叫做认证中心。
下面声明两个概念,局部变量和全局会话
局部会话:浏览器客户端与应用系统之间保持的会话。
全局会话:浏览器客户端与认证中心的会话。
实现单点登录sso我们还需要考虑几个问题:
1、应用系统将登录认证工作交给认证中心?---此处我们可以采用一个http的重定向,将客户端的请求重定向到认证中心
2、用户在认证中心登录后,如何将处理结果传递给应用系统?--- 我们知道,http协议传递信息的方式有两种,cookie和参数两种,cookie在此处会遇到跨域问题,那么我们只能采用参数的传递方式,将参数做成令牌(token)传递
3、应用系统如何能够识别此令牌就是认证中心发出的有效令牌?--- 那么我们还需要应用系统与认证中心进行服务端通信,因为此通信不经过浏览器,难以截获,是相对安全的。
4、登录状态的判断--- 通过我们前面说的局部和全局会话
5、登出问题--- 当客户端执行了登出的操作,如何保证在访问其他系统时处于状态一致,下面我简要描述一下登出的过程,一、客户端发出登出请求,请求到达应用系统,应用系统重定向到认证中心,应用系统告诉客户端登出成功,然后认证中心已广播的形式告诉所有该用户访问应用系统,该用户已经登出。
相关文章推荐
- cookie的secure属性详解
- 浏览器 cookie 限制
- android读写cookie的方法示例
- 浅谈COOKIE和SESSION区别
- 深入解析Session是否必须依赖Cookie
- 对比分析php中Cookie与Session的异同
- 新手菜鸟必读:session与cookie的区别
- php实现通过cookie换肤的方法
- php cookie工作原理与实例详解
- ASP.NET中Application、Cookie、Session、Cache和ViewState
- C#中Cookie之存储对象
- C#基于WebBrowser获取cookie的实现方法
- ASP.NET Cookie 操作实现
- .net core 1.0 实现单点登录负载多服务器
- php中cookie的作用域
- 写入cookie的JavaScript代码库 cookieLibrary.js
- 关于cookie的初识和运用(js和jq)
- JavaScript cookie 跨域访问之广告推广
- ie7下利用ajax跨域盗取cookie的解决办法