OAuth认证

OAuth认证是为了做到第三方应用在未获取到用户敏感信息(如:账号密码、用户PIN等)的情况下,能让用户授权予他来访问开放平台(主要访问平台中的资源服务器Resource Server)中的资源接口。

其流程主要是:
  1. 用户首先要保持登录,即已认证通过的状态

  2. 第三方应用请求用户授权(我理解是弹出一个显示的操作界面让用户确认给第三方授权)

  3. 用户授权成功之后会向Authorization Server(认证服务器)请求“授权码”(指authorization_code而不是最终的access_token),请求中还会携带redirect_uri(跳转至第三方应用的链接)

  4. 获得“授权码”之后用户所在的浏览器网页将跳转到redirect_uri(即第三方应用)

  5. 第三方应用携带“授权码”和应用认证信息(client_id & client_secret)到Authorization Server换取access_token

  6. 第三方应用就可以在访问开放平台时带上access_token

SSO单点登录

单点登录是指用户在某个应用系统上登录之后,进入其子应用或相关应用系统可以免去登录步骤,从而实现一次登录,到处操作。这次项目我所负责的正好是单点登录功能模块,所以来更新下实际项目中SSO的实现流程,我们要实现的效果是,现在有业务服务器a.comb.com,还有SSO服务器sso.com,在a.com上完成登录操作之后访问b.com时是已登录状态。

  1. 用户首次访问a.com/user时,到a.com服务器获取不到session

  2. 给用户弹出一个SSO的登录页面sso.com/login.html,这个页面会带上两个参数,分别是开发者平台映射值key(即某个业务服务器在SSO所映射的key)和回调地址redirect(即登录成功之后跳转到的url,一般是所发起业务服务器开放的路由)

  3. 用户输入账号密码之后到SSO服务器上进行身份校验,若校验成功则给用户生成一个ticket,并将该ticket值及用户基本信息一起创建SSO服务器session

  4. 选择某种加密方式对该请求的session进行加密之后生成一个token值,然后在回调地址redirect里带上token参数并跳转回去a.com服务器

  5. a.com对token参数进行解析后拿到用户基本信息和ticket值,相应地初始化本地session并将ticket值也记录下来

  6. 用户再次访问a.com/user或其他页面的时候,到a.com上获取session并到sso.com上校验ticket值得有效性,两个操作都成功之后才返回用户信息;若校验ticket值失败,则重新要求用户进行登录操作,即从步骤1开始

  7. 现在用户在a.com上的登录和访问流程已完成,那这时用户访问b.com/user,到b.com上获取不到session,则会重定向到sso.com/session,因为之前a.com已在sso.com上登录过,故请求sso.com/session的时候SSO服务器能将session中用户信息和ticket值返回给b.com

  8. b.com获取到用户信息和ticket值之后和a.com做相同的事情即可,这样就完成了单点登录的整个流程

单点登出则是指用户只要在a.com服务器上进行登出操作,则在其他业务服务器如b.com上也应处于未登录状态,单点登录流程的步骤6中提到每次用户访问业务服务器路由检验用户当前状态时不仅仅查找本地有没有session,还要到SSO服务器上校验ticket值的有效性,所以只要有一个业务服务器登出时令ticket失效即可。

现在用户是登录状态,他从a.com进行了退出操作,则自然a.com已将其session清除

a.com服务器同时还要携带ticket值发请求到sso.com将对应的记录清除

当访问某个b.com某个页面时,虽然在b.com服务器上获取到session,此外还需要到SSO服务器上校验一遍ticket值,而发现ticket值校验失败,则会提示用户当前处于未登录状态

这样相当于b.com也已经是退出登录,完成了单点登出的整个流程

OAuth认证实现机制及单点登录原理相关推荐

  1. cas跨域单点登录原理_CAS实现SSO单点登录原理

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  2. SSO单点登录原理剖析

    转载于:http://www.cnblogs.com/gxbk629/p/4473569.html CAS实现SSO单点登录原理 1.      CAS 简介 1.1.  What is CAS ? ...

  3. SSO单点登录原理详解

    本文主要对SSO单点登录与CAS.OAuth2.0两种授权协议的关系和原理进行详细说明. 1. 基础概念 术语解释 SSO-Single Sign On,单点登录 TGT-Ticket Grantin ...

  4. CAS单点登录原理简单介绍

    1. SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统. ...

  5. java单点登录统一认证,JEECG 集成KiSSO单点登录实现统一身份认证

    JEECG 集成KiSSO单点登录实现统一身份认证 JEECG 如何为其他第三方系统实现统一身份认证服务,实现单点登录? 第三方系统如何对接呢? 今天为大家揭开这层面纱,让大家了解实质,使用它更快速的 ...

  6. java单点登录跨域_深入浅出让你理解跨域与SSO单点登录原理与技术

    原标题:深入浅出让你理解跨域与SSO单点登录原理与技术 一:SSO体系结构 SSO SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互 ...

  7. 10.单点登录原理及JWT实现

    单点登录原理及JWT实现 一.单点登录效果   首先我们看通过一个具体的案例来加深对单点登录的理解.案例地址:https://gitee.com/xuxueli0323/xxl-sso?_from=g ...

  8. [转]单点登录原理与简单实现

    一.单系统登录机制 1.http无状态协议 web应用采用browser/server架构,http作为通信协议.http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关 ...

  9. (SSO)单点登录原理和总结

    一:什么是单点登录(single Sign-On) SSO 是一种统一认证和授权机制,指访问统一服务器不用应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后, 再访问其他应用中 ...

  10. asp 退出登录修改cookie能进入后台_深入浅出让你理解跨域与SSO单点登录原理与技术...

    一:SSO体系结构 SSO SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用 ...

最新文章

  1. IIS 7 应用程序池自动回收关闭的解决方案
  2. python datetime计算时间差_Python中关于日期的计算总结
  3. Java调用Matlab
  4. 工具类软件操作手册_全套广联达软件学习资料合集:教程+实例讲解+操作手册,一文搞定...
  5. 报错引发的版本对应——tensorflow+keras+python版本对应(全)
  6. Longest k-Good Segment CodeForces - 616D(尺取法)
  7. agilebpm脑图_设计开发平台前端框架介绍 | AgileBPM 敏捷工作流开发平台—开源免费-基于 Activiti 工作流引擎、Flowable...
  8. 交换两个变量的值,不使用第三个变量的四种法方法
  9. 几个常用JAVA开源项目的地址荟萃
  10. 【路径规划】基于matlab GUI人工势场算法机器人避障路径规划(手动设障)【含Matlab源码 617期】
  11. webpack5学习与实战-(八)-配置打包后的文件名
  12. 安卓苹果双端五级分销影视APP源码美化版
  13. Object.keys()的用法
  14. [Python]_ELVE_centos7安装Python3.7.1与Python2共存
  15. H5横幅,旗帜飘动动画
  16. 长尾词推广系统推荐乐云seo_长尾词优化推广很好乐云seo
  17. 下列python语句的输出结果是_下列Python语句的输出结果是 __________ 。
  18. w锋ndows用户组设置,第2章Wndows+Server+2008本地用户和组.ppt
  19. 计算机毕业设计SSM电影票购票系统【附源码数据库】
  20. 【目标检测】K-means计算anchors

热门文章

  1. 在delphi的dbgrid中插入其他可视组件_delphi教程
  2. 关于onpropertychange与oninput的兼容问题
  3. 计算机硬盘的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. 项目配置管理工具研究
  5. [转帖] 豆丁文档下载器v20100529绿色免费版_豆丁网文档下载工具
  6. 尼康单反AF自动对焦模式与AF区域模式详解
  7. 全体离职员工致某IT老板的一封公开信
  8. 新手入门fedora9 如何打开终端
  9. 计算机网络应用基础试题6,计算机网络应用基础期末试卷试题2
  10. C# 基础(二十五)WPF/WinForm 控件的句柄是什么意思?