SP 是什么

一句话总结

SP(Service Provider,服务提供者)就是 SSO 体系里那些”自己不存密码、信任 IDP”的应用。Grafana、Outline、n8n 配上 OIDC 都是 SP。


🤔 为什么会有它 / 解决了什么问题

每个应用如果自己管登录,就要自己写登录页面、存密码哈希、处理密码重置、防暴力破解……每个开发团队重复造这些轮子,而且很容易造出安全漏洞。

SP 模式把”验证身份”外包给 IDP,应用开发者只需要关心业务逻辑,不用再实现一套登录系统。


🔍 具体原理 / 运作逻辑

SP 的核心行为:

  1. 检测未登录:用户访问时,SP 发现没有有效会话
  2. 重定向到 IDP:把用户浏览器跳转到 IDP 的登录页
  3. 接收令牌:用户登完 IDP,浏览器带着令牌回到 SP
  4. 验证令牌:SP 检查令牌的签名、有效期,确认没有被篡改
  5. 建立本地会话:确认身份后,SP 创建自己的 Session/Cookie,后续请求不再跳转

在我们的架构里,Grafana、Outline、n8n 都是 SP——它们配了 OIDC 后,用户点开 URL 会自动跳 Frappe 登录页。


🧭 什么情况下会用到 / 什么场景会遇到它

  • 公司内部任何你不用单独注册账号就能打开的应用
  • 点击”用 Google/微信 登录”时,那个第三方网站就是 SP
  • 我们即将进行的:给 Grafana 配 OIDC,让它变成 Frappe 的 SP

🔗 关联 / 经常一起出现的概念


⚠️ 注意事项 / 常见误区

  • SP 不存用户密码,但有它自己的 Session。IDP 改了密码,SP 的旧 Session 可能要等过期或手动踢掉
  • 不是所有应用都支持当 SP。选型时检查它是否支持 OIDC 或 SAML

📎 记忆锚点

SP = 商场里的店铺。店铺不设保安,顾客拿着公安局发的身份证进门就行。


📝 更新日志

日期改动原因
2026-07-09首次创建Frappe SSO/OIDC 集成准备