为什么需要单点登录?

随着公司的业务增长,公司内会出现各种各样的办公系统,财务有财务系统,人力有人力系统,行政也有自己的系统。由于之前没有统一的规划和设计,各个系统都有自己的账号体系。庞大和复杂的账号体系,会给管理上带来严峻的挑战,同时也面临着安全风险。针对这些问题引入单点登录机制,解决多系统账号体系的管理问题。

什么是单点登录?

单点登录(Single Sign On)就是用户只需要登录一次就可以访问所有的系统,不需要每次登录新系统的时候还需要额外输入对应的账号密码。这样简化了登录流程,提升了效率,也增加了安全性。

单点登录的解决方案有哪些,有什么优缺点?

单点登录典型的方案有:CAS流程、JWT、OAuth、OpenID四种。

CAS流程(Central Authentication Service,集中式认证服务)是一种开源的单点登录框架,通过使用该框架可以将单点登录机制完整落地,是实战性比较强的方案。该方案的业务流程图如下所示:

通过引入认证中心,实现所有相关应用认证的几种管理,避免了账号体系的冗余。

JWT(Json Web Token)是一种非常轻量级的单点登录流程。此方案会在本地生成一个凭证信息,用户每个登录的请求中都会带上这个凭证信息,将其作为登录凭证。此方案的优点是凭证在客户端保存,不需要服务端的参与和维护。但是这也是此方案的缺点,由于服务端无法管理本地的凭证,使其失效,如果认证凭证泄漏或者被盗用将引起很严重的问题。

OAuth(Open Authorization)主要是实现授权认证,我们通过QQ或者微信登录第三方应用的时候,所采用的的协议就是OAuth。通过OAuth,用户在认证中心完成登录之后,应用根据用户的QQ/微信账号信息,绑定手机号,创建自己的账号信息完成授权认证。

OpenlD(Open ldentity Document)和OAuth的功能一致。但是,OpenlD不提供授权的功能。最常见的,当我们需要在应用中使用微信支付的时候,应用只需要收集支付相关的信息即可,并不需要获取用户的微信头像。

在实际的业务中,很多公司基于实际业务考量,都会生成一套自己的单点登录框架,一般业务流程如下所示:

在这个过程中认证信息通过应用服务器转发给认证中心,应用直接得到了认证信息的凭证,存在一定的安全风险。

最佳实践是什么?

CAS提供了一整套的开源登录框架,实战性强,比较好操作。

在适用范围上,JWT适用范围广,在单点登录的选取上面,如果想要将用户信息做统一管理,选择它最为简单。

如果认证中心只是被用来维护账号密码,由业务去维护用户所绑定的其他手机等信息,那么采用OAuth更合适。

由于不同公司面临的业务场景不同,所以应该根据自己的需求引入对应的单点登录框架。

盘点单点登录问题的那些解决方案相关推荐

  1. 单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造

    单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造 参考文章: (1)单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造 (2)https://www.cnblogs.com/ ...

  2. 单点登录、统一认证解决方案(一)

    单点登录.统一认证解决方案(一) 随着数字化的不断普及,大型公式或者单位的各个部门逐渐的上了与本身业务相关的各种各样的系统(在这些系统中,以 Web 系统居多),几乎每个系统都需要识别操作者的身份,并 ...

  3. 单点登录(SSO)解决方案介绍

    一.单点登录的介绍 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用 ...

  4. N多系统单点登录,实现、解决方案。四种解决方案

    单点登录  ( SSO  )的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了 单点登录  的需求和应用领域:从技术本身的角度分析了 单点登录  技术的内部机制和实现手段,并且给 ...

  5. 统一用户认证和单点登录(SSO)解决方案

    本文以某新闻单位多媒体数据库系统为例,提出建立企业用户认证中心,实现基于安全策略的统一用户管理.认证和单点登录,解决用户在同时使用多个应用系统时所遇到的重复登录问题. 随着信息技术和网络技术的迅猛发展 ...

  6. 单点登录、统一认证解决方案

    随着数字化的不断普及,大型公式或者单位的各个部门逐渐的上了与本身业务相关的各种各样的系统(在这些系统中,以 Web 系统居多),几乎每个系统都需要识别操作者的身份,并根据其不同的身份,分配一定的权限, ...

  7. 单点登录 SSO 解决方案选型指南|身份云研究院

    单点登录(SSO)是目前企业降本增效以及提升用户体验的主流选择方案.常规的单点登录指"登录一次,即可访问所有互相信任的应用,用户不再需要记住每一个应用的账号密码",这有效解决了密码 ...

  8. 基于IdentityServer4的OIDC实现单点登录(SSO)原理简析

     # 写在前面 IdentityServer4的学习断断续续,兜兜转转,走了不少弯路,也花了不少时间.可能是因为没有阅读源码,也没有特别系统的学习资料,相关文章很多园子里的大佬都有涉及,有系列文章 ...

  9. Atitit.单向sso  单点登录的设计与实现

    Atitit.单向sso  单点登录的设计与实现 1. 单点登录sso 的三大解决方案 1 2. 新方案:密码管理器方案 1 3. 调用方 1 4. 自动登录登录 2 5. 主页跳转 2 1. 单点登 ...

最新文章

  1. 面试 HTTP ,99% 的面试官都爱问这些问题!
  2. 简明 Python 编程规范v2
  3. Gentoo 安装日记 09 (安装stage3:下载内核)
  4. 多视图几何总结——摄像机模型
  5. firedac连接mysql,FireDAC连接数据库
  6. ViewState机制由浅入深1
  7. Lucence.Net学习+盘古分词
  8. 强烈推荐!FlyAI机器学习数据竞赛启动,丰厚奖金等你来拿
  9. 2015/04/01     RHCS
  10. android跳蚤市场的功能,基于Android校园跳蚤市场设计与实现.doc
  11. Django 发送邮件
  12. 陌上花开(三维偏序)(cdq分治)
  13. 训练集和测试集样本分布一致性的判断方法
  14. 量子计算机旋转硬币,量子行走漫谈
  15. 关于Chrome浏览器书签被更改的分析
  16. 技能高考计算机专业考什么,2016年技能高考计算机专业考试总结.pdf
  17. python爬虫学习爬取股票数据
  18. iOS crash分类,Mach异常、Unix 信号和NSException 异常
  19. iOS报错 之 The app delegate must implement the window property if it wants to use
  20. 10-224 查询比“网络工程”专业所有学生年龄都小的学生姓名

热门文章

  1. Linux lsof命令详解
  2. OpenCvSharp (C# OpenCV) 实现扫描文本矫正应用与实现详解(附源码)
  3. ios测试续航软件,iOS13.5 续航评测来了,7款iPhone实测出结果
  4. java如何去除噪点,消除黑白图像中的噪点
  5. SQL中的coalesce函数
  6. 台式中端计算机配置单,2017年台式电脑主流配置
  7. java contains是什么意思_java contains方法作用
  8. 网络安全笔记-02-win7 粘滞键系统密码破解
  9. window下安装Ubuntu双系统
  10. 【前端】优酷、酷6、土豆网视频自动播放代码