跳到主内容
快讯直播
AI智模界
AI 词典

OAuth 2.0 / OIDC:给智能体的授权与身份层

一句话定义:OAuth 2.0 是一套授权(authorization)框架,让第三方应用在不拿到你密码的前提下,访问你在某个服务上被限定范围的那部分数据;OIDC(OpenID Connect)是在它之上加的一层身份认证(authentication),回答"你是谁"。

用酒店房卡理解 OAuth 2.0

你出差住酒店:到前台出示身份证,前台给你一张房卡。房卡只能开你订的那间房、只在住店期间有效,退房即失效——你不用把家门钥匙复印一份交给保洁。

对应到协议里的四个角色:你 = 资源所有者(resource owner);想帮你办事的应用或智能体 = 客户端(client);酒店前台 = 授权服务器(authorization server);你的房间 = 资源服务器(resource server)上的数据。

流程大致是:客户端把你跳转到授权服务器,你登录后看到一张同意页(consent),上面列着它申请的 scope(作用域);你点同意,授权服务器发一个授权码给客户端,客户端拿它换回 access token(访问令牌),之后凭令牌访问资源。令牌有有效期,配合 refresh token 续期,用户随时可以撤销。PKCE 是防止授权码在跳转途中被截走的一道加固。

OIDC 补上的是"你是谁"

OAuth 2.0 只管"能做什么",不管"你是谁"。客户端手里的 access token 对资源服务器有效,但客户端自己未必看得懂、也未必能验证。OIDC 规定:请求时带上 openid 这个 scope,授权服务器额外返回一个 ID AI 词典:Token">Token(通常是 JWT),里面写明用户标识、签发方、受众和过期时间,客户端可以自行校验。它还标准化了 UserInfo 端点。

对比项OAuth 2.0OIDC
解决什么授权:能访问什么认证:你是谁
核心产物Access TokenID Token(JWT)
谁消费资源服务器客户端自己
典型场景应用读写你的网盘用某账号登录第三方站点

智能体代你出门时,这层更关键

区别在于:以前是网站调 API,动作由人写死;现在是模型自己决定调哪个工具、点哪一步。工程上要盯住几点:

  • 最小权限:给 agent 的 scope 要窄,别一上来就给全盘读写。
  • 受众限制:令牌写明给谁用,防止 A 服务的令牌被拿去打 B 服务(代混淆,confused deputy)。
  • 短时与可撤销:短效令牌加刷新令牌,用户一键能断。
  • 人类在环:转账、发消息、删数据前让用户点一下确认。
  • 可审计:每次代用户调用都能追到哪个用户、哪个 agent、哪个 scope。

如果让 agent 拿你的账号密码登录,它等于拿到了你家所有房间的钥匙,而你没**法只收回"日历"那一把。

容易搞混的邻居

密码共享不是 OAuth——OAuth 的意义就是不发密码。API Key 也不是 OAuth:它通常代表应用自己,没有用户、没有 scope、没有同意页,适合机器对机器,OAuth 里的客户端凭证模式同理。企业 SSO 常用 SAML 或 OIDC 实现,OIDC 属于较现代的做法。OAuth 2.1 草案把 PKCE、取消隐式模式等最佳实践合并进来,具体状态以官方规范页面为准。

对普通人的意义:同意页上那行 scope 小字,决定了这个应用(哪怕它叫 AI 助手)能读你多少东西。对从业者:做 agent 产品时,授权层设计往往比调 prompt 更决定它能不能上生产。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。