跳到主要内容

SSO 与 OAuth 2.0

很多开发者容易把 SSO 和 OAuth 2.0 混淆。简单来说:SSO 是目的(业务需求),OAuth 2.0 是手段(技术实现协议)。

概念区别​

SSO (Single Sign-On 单点登录)​

  • 它是什么:一个业务概念或用户体验目标
  • 核心定义:用户只需要在一个地方(IM)登录一次,就可以访问所有互相信任的系统(OA、CRM),不需要重复输入密码
  • 一句话概括:"只要我有 IM 的工牌,OA 和 CRM 的大门我都进得去"

OAuth 2.0 (开放授权协议)​

  • 它是什么:一个技术标准或通信协议
  • 核心定义:规定了 A 系统(IM)如何安全地把用户的身份或权限授权给 B 系统(OA),而不需要把用户的密码告诉 B 系统
  • 一句话概括:"IM 给 OA 发一张临时的入场券(Token),而不是把用户的钥匙(密码)给 OA"

生活中的例子​

假设你去住一家高级酒店(这个酒店就是你的 IM 平台)。

SSO 的场景: 你在前台办理了入住(登录了 IM)。你可以去酒店的健身房(OA)、餐厅(CRM)、泳池(ERP),只要出示房卡就行,不需要每进一个门都重新填表。

OAuth 2.0 的场景: OAuth 2.0 是房卡背后的技术机制。当你刷房卡进健身房时,门禁系统会问前台:

  1. "这张卡是合法的吗?"(验证 Token)
  2. "这个人是谁?"(获取 UserInfo)
  3. "他有权限进健身房吗?"(Scope 权限范围)

结合流程​

在企业级 IM 开发中,OAuth 2.0 是实现 SSO 的载体。

关键点​

对比项SSOOAuth 2.0
性质业务目标技术协议
关注点用户体验安全授权
实现方式可用多种协议标准化流程
典型场景企业内部系统互通第三方应用授权