认证协议 是什么
一句话总结
认证协议是 IDP 和 SP 之间的”通信语言”——定义了”怎么证明你是你”的标准流程。SSO 里最主流的是 OIDC,它跑在 OAuth 2.0 之上。
🤔 为什么会有它 / 解决了什么问题
IDP 和 SP 是不同团队甚至不同公司开发的系统。没有标准协议的话,每个 IDP 和每个 SP 都要一对一约定怎么传数据——格式、加密方式、超时规则全不一样。这是个 N×M 的集成噩梦。
标准协议就是”大家都说同一种语言”。一个支持 OIDC 的 SP,可以对接任何支持 OIDC 的 IDP,不需要定制开发。
🔍 具体原理 / 运作逻辑
主流认证协议有三代:
| 协议 | 年代 | 格式 | 状态 |
|---|---|---|---|
| SAML | 2005 | XML | 企业级老将,Okta/ADFS 在用 |
| OAuth 2.0 | 2012 | JSON | 授权框架,不是认证协议 |
| OIDC | 2014 | JSON (JWT) | 跑在 OAuth 2.0 上的认证层——我们用的就是这个 |
OIDC 的核心流程就是 Authorization Code Flow:浏览器跳转 → 登录 → 拿临时码 → 换令牌。用到的令牌是 ID Token(身份证)和 Access Token(房卡),安全加固靠 PKCE(防截获)。
更硬核的技术细节(点击展开)
OIDC 在 OAuth 2.0 上加的关键东西:
- ID Token:一个 JWT,包含
sub(用户唯一 ID)、name等字段- UserInfo Endpoint:SP 拿到 Access Token 后可以调这个接口拉更详细的用户信息
.well-known/openid-configuration:一个标准 URL,告诉 SP 所有端点的地址- Claims:标准化的用户属性字段名(
given_name、family_name等)
🧭 什么情况下会用到 / 什么场景会遇到它
- 你在配置 Grafana 的 SSO 时,要填
auth_url、token_url——这正是在告诉它”用 OIDC 协议跟 Frappe 说话” - 任何 SSO 集成的第一步都是确认”双方协议是否兼容”
🔗 关联 / 经常一起出现的概念
📎 记忆锚点
协议 = 国际通用护照标准。不管你是哪国人(哪个 IDP),只要护照按标准格式签发,各国海关(各个 SP)都认。
📝 更新日志
| 日期 | 改动 | 原因 |
|---|---|---|
| 2026-07-09 | 首次创建 | Frappe SSO/OIDC 集成准备 |