OAuth Client 是什么

一句话总结

OAuth Client 就是 SP,只是 Frappe 里叫这个名字。它是注册在 IDP 上的一个”信任凭证”——每个要接 SSO 的外部应用都要在这里登记,拿到自己的 client_id 和 client_secret。


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

IDP 不能随便给任何一个应用签发令牌——否则恶意应用也能冒充你登录。Client 注册就是 IDP 的”白名单”:只有登记过的应用,IDP 才信任它、才给它发令牌。


🔍 具体原理 / 运作逻辑

Frappe 的 OAuth Client Doctype 存了每个外部应用的关键信息:

字段作用
app_name应用名字(给人看的)
grant_type授权方式(Authorization Code / Implicit)
response_typeCode 还是 Token
scopes权限范围,OIDC 至少要 openid
redirect_uris登录后跳回哪里(必须精确匹配)
default_redirect_uri默认回调地址
skip_authorization跳过用户确认页面

创建后会生成 client_id(记录名)和 client_secret(10 位随机哈希)。外部应用拿着这两个值 + 端点地址,就能走完整的 Authorization Code Flow


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

  • SP:同一个东西,架构层面的统称
  • IDP:Client 的另一半,签发令牌的那个
  • Authorization Code Flow:Client 使用的认证流程
  • OIDC:Client 和 IDP 之间的通信协议

📎 记忆锚点

OAuth Client = 酒店登记的访客名单。不在名单上的人(应用),前台(IDP)不给房卡。


📝 更新日志

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