OAuth 委托的是什么?
资源所有者允许客户端访问受保护资源,授权服务器发放令牌,资源服务器检查请求。客户端能取得受限授权,无须获得用户在资源服务上的密码。[1]
051 / 身份与访问 / OAuth
OAuth · OAuth
读书助手只需要读取笔记,却不该因此拿到你的密码或修改资料的权限。沿着授权码、令牌与 API 请求,找到每一步允许做事的依据。
女孩把带日历图案的钥匙交给日历角色,门内放着信件,旁边密码气泡被打叉。钥匙比喻限定范围的授权;它仍需妥善保管,图中日历例子与实验中的笔记委托遵循同一边界。
本课任务 / OAuth
亲手探索 / 不同条件,不同结果
在小珊、读书助手、海湾授权中心和资源 API 之间选择授权范围、兑换记录、目标动作与令牌时间。先预测会在哪一层停止;公共浏览器客户端固定要求 S256,不发送真实请求。
委托边界对照台 · OAuth 2.0
读书助手想代小珊操作资源。把“授权码能否兑换”和“令牌能否用于这个动作”分开检查,再判断哪一道边界应当停下。
限定场景:单一授权服务器、公共浏览器应用、授权码 + S256 PKCE、固定 HTTPS 回调。下方是已知条件卡,不会生成授权码、计算 PKCE 或联系任何服务。
尚未运行。先预测,再推进本地教学模型。
再试一次:保留只读委托,把修改改成读取;再换成资料 API。最后保持可访问配置,只把 verifier 改为不匹配。哪一层变化了?PKCE 为什么不能让只读权限变成写权限?
随手查 / 把理解带回实际工作
实验是简化模型。真实环境需要明确业务规则、验证失败路径,并持续维护配置与证据。
01 / 实用细节
客户端只申请当前功能所需的 scope,授权服务器可以收窄授权。API 应按实际令牌及服务端政策判断;同意读取笔记,不能推导出可改笔记、读资料或访问别人的对象。[1][3]
02 / 实用细节
PKCE 为每次流程创建高熵 verifier,先发送其 S256 challenge,兑换时再核对。错误 verifier 或缺少必需 PKCE 应失败;它保护授权码交换,不会让恶意客户端自动变可信。[2][3]
03 / 实用细节
本页 Web 客户端使用预登记的完整回调地址,授权与兑换阶段都核对相应绑定。client_id 是标识,公共客户端不能把内置字符串当成能保密的 client_secret。[1][3]
04 / 实用细节
授权码应短期有效且单次兑换。实现需要拒绝重用,并处理并发兑换、错误客户端与回调不一致;不要把重新提交成功响应当成另一份新的授权。[1]
05 / 实用细节
有效令牌必须适用于当前资源和动作。Bearer 令牌的持有者可能冒用它,应保护传输和存储,避免进入 URL 或日志;PKCE 不防护已经泄露的访问令牌。[4][3]
06 / 实用细节
登录客户端应按 OIDC 检验 ID Token 的签发者、受众、有效期和本次流程关联。ID Token 与访问令牌各有接收者和用途,不能只因两者都像 JWT 就互换。[5]
从模拟,到验证
勾选用于本页自查,不会自动标记整课已学会。练习与清单刷新后重置。
本页已检查 0 / 5 项
小测结果同步错题本;“已学会”沿用原有本地学习记录。
四种角色、公共客户端、scope 与授权码绑定;安全建议结合 RFC 9700
verifier、S256 challenge 与授权码兑换核对
回调精确匹配、PKCE、授权范围与令牌目标限制
Bearer 凭据泄露、传输与资源请求的安全边界
OAuth 上的身份层及 ID Token 验证
本页场景、人物与数据均为教学示例。互动选择不会上传;收藏、已学会与错题沿用当前浏览器本地存储。来源正文核对日期:2026-10-08。