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 是房卡背后的技术机制。当你刷房卡进健身房时,门禁系统会问前台:
- "这张卡是合法的吗?"(验证 Token)
- "这个人是谁?"(获取 UserInfo)
- "他有权限进健身房吗?"(Scope 权限范围)
结合流程
在企业级 IM 开发中,OAuth 2.0 是实现 SSO 的载体。
关键点
| 对比项 | SSO | OAuth 2.0 |
|---|---|---|
| 性质 | 业务目标 | 技术协议 |
| 关注点 | 用户体验 | 安全授权 |
| 实现方式 | 可用多种协议 | 标准化流程 |
| 典型场景 | 企业内部系统互通 | 第三方应用授权 |