• SSO 和 OAuth2.0 的关系是什么?


    ​一、OAuth2.0 实现了「授权」,SSO 还得实现「认证」

    一言以蔽之,OAuth2.0 可以是通往 SSO 这个 “罗马” 的其中一条路,但它们本身并列于不同的场景与需求。

    SSOOAuth2.0
    含义Single Sign On,单点登录OAuth 的 2.0 版本
    本质一种思想 / 解决方案,抽象的一种协议,具体的
    应用场景一次鉴权,畅通多个应用发放令牌,授予操作权限
    在业务系统中储存账密××
    验证用户身份的方式session、cookie、tokentoken
    互相信任的应用群×
    资源提供方客户端+用户用户

    在详解 SSO 和 OAuth2.0 之前,需要先弄懂 “认证” 与 “授权” 。

    认证(Authentication):知道 ta 是谁

    授权(Authorization):知道 ta 有没有权限对资源执行试图执行的操作

    认证操作需要由身份信息的持有者来完成,我们称其为 IdP(Identity Provider,身份提供商)。 而在使用 OAuth2.0 协议的流程中,是不出现 IdP 这一角色的。

    我们可以借用《西游记》来理解一下:如果天界支持的是 OAuth2.0 协议,六耳猕猴真拿到了通关文牒(相当于token,令牌),那它就可以凭着这个去西天取经了。因为如来佛祖不管来的人猴姓甚名谁,只要令牌符合条件,就可以把经文取走。

    换句话说 ,SSO 可以借助 OAuth2.0 完成了「授权」,但「认证」这一步还需要靠引入 IdP 来实现。

    二、OAuth2.0

    OAuth2.0 是一种关于授权的开放网络标准,允许用户在一个站点向其他站点授予对其资源的有限访问权限,无需获得其凭证。

    设想一下,小蓝想把存储在 Google 的游戏录屏分享到 TapTap 这个手游分享社区,但又不愿意它拥有获取 Google 里所有资料的权力。问题是,只有得到了小蓝的授权,TapTap 才能读取 Google 相册里的视频。除了把 Google 的账密告诉其他应用,还有什么办法吗?

    OAuth2.0 的诞生就解决了这个问题。简单来说,它在 Google 这个SP(Service Provider,服务提供商) 和 TapTap 客户端之间设置了一道“授权结界”,不让它们直接接触。

    被授权的主体不是用户,而是想要访问用户资源的业务系统,也就是TapTap 这种客户端。

    三、单点登录 SSO

    而 SSO 在引入身份提供商后,用户也成为了等待被认证、被授权的主体。

    SSO(Single Sign On,单点登录)是指一种思想或服务,用户只需使用一次登录凭据就可以访问其他所有被授予权限的应用

    也就是说,小蓝用一组账号密码登录公司的考勤系统,切换至被授权的财务系统时也处于登录态,不会跳出让他重复登录的会话框。

    还是用“真假美猴王”的例子来理解 SSO 和 OAuth2.0 的区别: 如果天庭购买了能够提供单点登录服务的软件,并委派一个 “身份官”(IdP)查岗,六耳猕猴就不仅要持有通关文牒这个 token,还得报上名来,证明自己是唐僧师徒四人的其中一个,才能取走经文。

    可以看出,IdP 认证用户身份,并授权其访问存储在客户端的资源,是 SSO 比 OAuth2.0 走得更远之处。

    认证的方式包括三种:

    • 通过 session 进行认证
    • 通过 cookie 进行认证
    • 通过 token 进行认证

    市面上具备 SSO 功能的软件里, Authing 是无需手动编写操作 session、cookie 或是 token的。


    点击链接,立刻了解 Authing!

  • 相关阅读:
    浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任意文件上传漏洞复现 [附POC]
    索引的优化
    Linux知识
    12 医疗挂号系统_【 手机登录】
    口袋参谋:99.9999%商家都在用的,下拉词搜索工具!
    探索ClickHouse——安装和测试
    计算机组成原理习题课第四章-1(唐朔飞)
    [SpringMVC笔记] SpringMVC-13-表现层与前端数据传输数据协议实现
    机组运行约束对机组节点边际电价的影响研究(Matlab代码实现)
    vm+centos7安装
  • 原文地址:https://blog.csdn.net/Authing/article/details/127888304