如何设计一个单点登录系统(2)?

如何设计一个单点登录系统(1)?

中,我着重从单点登录系统的由来,单点登录的概念,一个好的单点登录系统应该具备的特点以及本人亲自实现的一个单点登录系统几方面做了些介绍,这篇文章主要介绍下具体实现方案。

1.1 传统SSO实现方案-登录

1.2 传统SSO实现方案-登出

图1.1为传统SSO实现方案中登录流程时序图

图1.2为传统SSO实现方案中登出流程时序图

接下来给大家解释解决跨域问题的方案:

2.1 支持跨域的SSO实现方案-登录

2.2 支持跨域的SSO实现方案-登出

图2.1为支持跨域的SSO实现方案-登录流程时序图

图2.2为支持跨域的SSO实现方案-登出流程时序图

此方案中sso服务端需要做以下几件事情:

  1. 提供登录页
  2. 生成token,创建全局会话
  3. 配置各系统名的回调地址,供登录成功或者全局会话存在时重定向使用
  4. 记录各token绑定的用户信息
  5. 记录各token绑定的系统名称信息,作为注销时回调哪些系统注销接口的根据
  6. 提供注销页
  7. 配置各系统注销的回调接口,供注销时回调绑定的系统
  8. 注销成功后回调
  9. 认证token有效性

接入方需要做以下事情:

  1. 发现未登录时重定向到sso服务端
  2. 提供登录成功回调接口,供登录成功或者存在全局会话时回调
  3. 提供登出接口
  4. 登录校验
  5. sso服务端回调后根据token去服务端认证token的有效性

由于篇幅有限,这篇文章只讲到各个模块的职责已经登录,登出的时序图及说明,具体代码结构及实现到下一篇再详细介绍。

原文地址:https://www.cnblogs.com/a8457013/p/9055247.html

时间: 2024-07-31 09:51:07

如何设计一个单点登录系统(2)?的相关文章

如何设计一个单点登录系统(3)?

在上一篇文章 如何设计一个单点登录系统(2)? 中主要讲解了可跨域SSO系统服务端,客户端在登录,登出过程中分别应该承担的职责,本文将重点聊一下具体技术实现,源码地址: https://github.com/zhoudapeng/zsso 首先聊服务端的实现,毕竟服务端是整个单点登录系统的大脑 提供登录页,这个是登录的基础,所有的接入方在发现当前用户未登录的情况下都会重定向到sso服务端的登录页,服务端的逻辑如下: sso服务端登录页逻辑 这里服务端需要做个判断: 如果当前登录存在.sso.co

sso单点登录系统

sso单点登录概念 1.一处登录,处处登录.会单独做一个单点登录系统,只负责颁发token和验证token,和页面登录功能. 2.通过在浏览器cookie中放入token,和在redis中对应token放入用户信息的方式,代替session共享,使用jwt(json web token)自定义一个携带用户信息token加密算法. 3.cookie中的token是已经使用过的token,取名oldToken . url地址栏中的token新颁发的token,取名newToken 做法: 1.首先自

八幅漫画理解使用 JSON Web Token 设计单点登录系统

原文出处: John Wu 上次在<JSON Web Token – 在Web应用间安全地传递信息>中我提到了JSON Web Token可以用来设计单点登录系统.我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统,然后再延伸到单点登录系统. 如果还没有阅读<JSON Web Token – 在Web应用间安全地传递信息>,我强烈建议你花十分钟阅读它,理解JWT的生成过程和原理. 用户认证八步走 所谓用户认证(Authentication),就是让用户登录,并且在接下来的一段时

跨域单点登录系统的设计与实现

跨域单点登录系统的设计与实现 一.跨域单点登录系统整体设计 1. 系统架构 如上图所示:在系统存在一个认证中心以及多个站点.用户信息统一由认证中心管理,在其它子站的登录均会跳转到认证中心来登录. 2. 工作流程 单点登录系统的关键在于,当用户从一个子站登录后,它会在认证中心生成ticket标识,只要该标识存在就代表用户已经成功登陆了.每个子站在进入之前,无论本地ticket标识是否存在,均会去请求一次认证中心,要做的事情如下:如果子站ticket不存在,并不一定代表用户没有从别的子站登录,但是如

八幅漫画理解使用JSON Web Token设计单点登录系统

转载自:http://blog.leapoahead.com/2015/09/07/user-authentication-with-jwt/ 上次在<JSON Web Token - 在Web应用间安全地传递信息>中我提到了JSON Web Token可以用来设计单点登录系统.我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统,然后再延伸到单点登录系统. 如果还没有阅读<JSON Web Token - 在Web应用间安全地传递信息>,我强烈建议你花十分钟阅读它,理解JWT的

[转]八幅漫画理解使用JSON Web Token设计单点登录系统

上次在<JSON Web Token - 在Web应用间安全地传递信息>中我提到了JSON Web Token可以用来设计单点登录系统.我尝试用八幅漫画先让大家理解如何设计正常的用户认证系统,然后再延伸到单点登录系统. 如果还没有阅读<JSON Web Token - 在Web应用间安全地传递信息>,我强烈建议你花十分钟阅读它,理解JWT的生成过程和原理. 用户认证八步走 所谓用户认证(Authentication),就是让用户登录,并且在接下来的一段时间内让用户访问网站时可以使用

单点登录系统(SSO)的开发思路

单点登录并不是一个新鲜的玩意儿,比较官方的解释是企业业务整合的解决方案之一,通俗来讲SSO就是一个通用的用户中心,国内比较流行的UCenter就是一套单点登录解决方案.而近期以CSDN明文存储用户密码并泄露用户信息开始的各大网站争先恐后的泄露自己的用户数据库除了暴露了这些网站的良心和智商外,如何设计用户中心已成为架构师们的热点话题之一.在最近一两年的项目经验中有幸接触到各种平台的单点登录系统的开发,所以借此机会总结下B/S架构的单点登录系统的开发经验. 单点登录系统的类别 就目前比较流行的应用来

多平台的网站实现单点登录系统(SSO)的开发思路 让你的会员中心更加统一(参考资料)

单点登录并不是一个新鲜的玩意儿,比较官方的解释是企业业务整合的解决方案之一,通俗来讲SSO就是一个通用的用户中心,国内比较流行的UCenter就是一套单点登录解决方案.而近期以CSDN明文存储用户密码并泄露用户信息开始的各大网站争先恐后的泄露自己的用户数据库除了暴露了这些网站的良心和智商外,如何设计用户中心已成为架构师们的热点话题之一.在最近一两年的项目经验中有幸接触到各种平台的单点登录系统的开发,所以借此机会总结下B/S架构的单点登录系统的开发经验. 单点登录系统的类别 就目前比较流行的应用来

单点登录系统(SSO)之CAS(中央认证服务)

SSO(Single Sign On)单点登录系统,是在多个系统中值要求只要登录一次,就可以用已登录的身份访问多个系统,去掉了每次访问不同的系统都要重新登录的弊端. CAS(中央/集中认证服务):The Central Authentication Service project, more commonly referred to as CAS is an authentication system originally created by Yale University to provid