sso和oauth2.0的区别是什么?

SSO 和 OAuth 2.0 的区别(2026 年最清晰对比版)

简单一句话总结:

  • SSO(单点登录) 是一种用户体验机制:用户一次登录,就能访问公司/组织内的多个系统。
  • OAuth 2.0 是一种授权框架/协议:允许用户授权第三方应用访问自己在某个服务上的资源(而不把账号密码给第三方)。

它们经常一起出现,但本质上是解决不同问题的两个东西。

核心区别对比表(2026 年视角)

维度SSO(单点登录)OAuth 2.0谁更像谁?
核心目的一次登录,多系统免登录(统一身份认证)授权第三方应用访问用户资源(不暴露密码)完全不同
解决的问题内部多个系统重复登录的痛苦“用微信/QQ/谷歌登录”这种场景
典型场景企业内部系统(如 OA、HR、财务、邮箱、CRM)第三方 App 用微信登录、用 GitHub 授权访问仓库
是否传递密码通常不传明文密码(内部统一身份源)绝对不传密码,只传 access tokenOAuth 更安全
用户身份归属身份属于组织/公司内部(企业身份提供者 IdP)身份属于第三方平台(如微信、Google、GitHub)
授权范围通常全域(登录后能访问公司所有允许的系统)细粒度(scope):只给读邮箱、只给改资料等OAuth 更精细
协议标准没有统一标准,常见实现:SAML、CAS、OpenID Connect、Kerberos国际标准协议(RFC 6749 + 扩展)OAuth 是标准
现代主流实现OpenID Connect(OIDC)+ OAuth 2.0OAuth 2.0(常与 OIDC 一起用)高度重叠
Token 类型通常是 Session Cookie 或 JWTAccess Token(短期) + Refresh Token(长期)不同用途
典型流程用户 → IdP 登录 → 发票据 → 各系统验证票据用户 → 第三方 App → 授权服务器 → 同意 → 回调给 App token流程完全不同
谁持有用户凭证组织自己的身份系统(AD、LDAP、Keycloak 等)资源拥有者(如微信、Google)

2026 年真实场景分类(最容易混淆的几种情况)

你看到的现象其实是什么?为什么很多人分不清?
公司内网一次登录,所有系统都免登录经典 SSO(可能基于 SAML/OIDC)
用微信扫码登录某个小游戏/网站OAuth 2.0(微信作为授权服务器)
用 Google 账号登录 Notion/Jira/SlackOAuth 2.0 + OpenID Connect因为同时实现了“登录”和“授权”
阿里内网/腾讯 TAPD/字节飞书一次登录全家桶企业级 SSO(通常基于 OIDC)底层很可能用了 OAuth 2.0 框架
“企业微信登录”某个第三方 SaaSOAuth 2.0(企业微信做 IdP)看起来像 SSO,其实是标准 OAuth 授权流程

2026 年最扎心的结论(从业者共识)

  • 纯 SSO:现在已经很少单独存在了,大部分现代“单点登录”其实是 OpenID Connect(OIDC) 在做,而 OIDC 是建立在 OAuth 2.0 之上的身份层
  • 所以你今天看到的绝大多数“公司级/平台级单点登录”,底层基本都是 OAuth 2.0 + OIDC 的组合。
  • 真正“只用 OAuth 2.0 不带 OIDC”的场景,主要就是纯授权(比如第三方 App 只想读你的 Google 日历,不需要知道你是谁)。

一句话总结区别:

  • 想解决“我不想每个系统都登录一次” → SSO(现代实现基本是 OIDC)
  • 想解决“这个 App 想用我的微信资料,但我不想把微信密码给他” → OAuth 2.0

你现在是在做企业内部 SSO,还是在做第三方登录/开放平台授权?
可以告诉我具体场景,我能给你更针对性的技术选型和注意事项~

文章已创建 3855

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部