sa-token框架的sso和OAuth2.0

📅 2026/7/8 12:38:57
sa-token框架的sso和OAuth2.0
一、基础定义1. SSO单点登录 Single Sign-On是一套登录业务方案 / 架构目标一次登录多个系统免登。核心解决身份登录、会话互通常见实现协议CAS、SAML2.0、OAuth2.0、OIDC1.0定位功能目标单点登录能力2. OAuth2.0是一套授权协议标准目标第三方应用授权不传递账号密码。核心解决资源授权不是登录定位技术协议实现授权的规范二、核心本质区别维度SSOOAuth2.0核心目的统一身份登录多系统免登第三方授权允许 A 应用访问 B 用户资源核心对象用户身份、登录态资源权限、访问令牌是否登录协议本身不是协议是业务能力靠 OIDC/OAuth 落地纯授权协议原生不带登录能力用户密码统一身份中心保管各业务系统不存密码第三方 App 永远拿不到用户账号密码典型场景公司内部 OA、CRM、ERP 一套账号登录微信 / QQ 登录网站、APP 授权获取头像昵称三、关键关系OAuth2.0 不能直接做 SSO靠 OIDC 补全纯 OAuth2.0 只有授权没有身份信息OAuth 只下发 access_token只能拿资源无法证明用户是谁做不了单点登录。OIDC 1.0OpenID Connect基于 OAuth2.0 扩展在 OAuth 流程基础上新增id_token身份令牌JWT 格式携带用户唯一标识、姓名、邮箱等身份信息。 →行业主流 SSO 实现方案OIDC底层基于 OAuth2.0流程简化第三方登录 / 企业 SSO 通用用户访问业务系统 A未登录跳转统一认证中心IdP用户在 IdP 输入账号密码登录IdP 返回授权码业务系统换取access_token id_token解析 id_token 拿到用户身份完成登录生成本地会话访问其他同源信任系统自动携带登录态免登SSO 效果四、OAuth2.0 四种授权模式高频授权码模式Authorization Code最安全前后端分离、第三方登录、企业 SSO 标准方案。简化模式Implicit纯前端 SPA无后端不安全基本淘汰。密码模式Password第三方直接传用户名密码仅内部可信服务使用对外禁用。客户端凭证模式Client Credentials无用户服务间调用授权后台 API 互通。五、两种典型落地场景区分场景 1企业内部 SSO员工统一账号需求一套账号登录 OA、财务、考勤、项目系统技术选型OIDCOAuth2.0 扩展/ SAML2.0角色IdP统一认证服务、SP各业务系统场景 2第三方快捷登录微信登录网站需求不用注册账号用微信授权登录底层OAuth2.0 OIDC流程网站跳转微信认证 → 授权 → 返回用户 OpenID → 网站创建本地账号登录六、易混淆关键点总结SSO 是功能OAuth2.0 是授权协议二者不是同级概念OAuth2.0 原生不能实现 SSO必须叠加 OIDCOAuth 解决「授权」SSO 解决「登录」SAML2.0 是传统企业 SSO 协议OIDC (OAuth2) 是互联网轻量化 SSO 标准access_token访问资源id_token证明用户身份SSO 核心。七、简单一句话概括OAuth2.0我允许你替我拿我的数据授权SSO我登一次所有系统都认得我统一登录OIDC OAuth2.0 身份信息是现在做 SSO 最通用的标准sa-token框架文档地址Sa-Token