正在读取本机记录…
拓展技术沟通◷ 55 分钟

Session、Token、OAuth 与权限控制

区分身份认证、登录状态和操作授权。

学完你能做到
  • 用自己的话解释“Session、Token、OAuth 与权限控制”及其核心术语。
  • 在真实 AI 产品场景中识别何时应该使用本课方法。
  • 完成一份可沉淀进“系统关系图、一次 API 调用与基础 SQL 练习”阶段任务的实践产出。
前置与关联课程

完成阶段 2 的能力检查,或先预览相关基础课

01

REAL SCENE

先从一个真实场景开始

!

企业管理员邀请成员后,成员通过第三方登录进入系统,却能看到不属于自己的知识库。团队只验证“登录成功”,没有验证资源归属和角色权限。认证、会话和授权混在一起,会让便利功能演变成严重越权漏洞。

02

PLAIN EXPLANATION

说人话:它到底是什么?

认证回答当前请求者是谁,Session 或 Token 用于在后续请求中维持身份,OAuth 允许用户授权第三方访问有限能力;授权则根据身份、角色、资源归属和当前状态判断能否执行某动作。前端隐藏按钮不是安全控制,所有敏感操作都要在服务端逐次校验。权限模型要覆盖默认拒绝、最小权限、过期撤销和审计。

01

登录与会话

密码、多因素或第三方身份完成认证后,系统建立会话。Session 常由服务端保存状态,Token 常由客户端携带声明;二者都需安全存储、合理过期、刷新与撤销机制。

  • 登录失败不泄露账号是否存在
  • 高风险操作可要求再次认证
  • 退出与封禁能及时使凭证失效
02

OAuth 授权边界

OAuth 的核心是让用户授权客户端获得有限范围,而不是把密码交给第三方。产品要明确 scope、同意页面、回调地址、授权期限和撤销入口,避免默认申请所有权限。

  • 只申请当前功能所需 scope
  • 回调地址严格匹配
  • 用户可查看和撤销已授权应用
03

资源级授权

角色权限还不够,服务端要校验对象属于哪个组织、项目或用户,以及资源当前状态是否允许操作。默认拒绝和统一授权层能减少遗漏;关键权限变化进入审计。

  • 每次请求重新验证资源关系
  • 列表与详情使用同一过滤规则
  • 管理员操作也受范围与审计约束
01

认证、会话与授权是不同环节,任何一个都不能替代另一个。

02

权限默认拒绝并按最小范围授予,服务端逐请求校验。

03

凭证需可过期、刷新、撤销,关键操作可追溯。

03

KEY POINT

这节课最重要的结论

核心重点
认证回答“你是谁”,授权回答“你能做什么”,二者不能混为一谈。
为什么重要
这决定了听懂工程语言、阅读接口和数据库方案,并判断技术取舍时,团队是否拥有一致、可验证的判断标准。
适用边界
当问题目标、数据来源或失败成本发生变化时,不要机械套用;先重新确认假设和风险等级。
04

EXAMPLES

正确案例与常见反例

✓ 正确做法

企业成员通过 OAuth 登录时仅申请基本身份 scope;服务端创建短期会话。读取文档时同时校验组织、角色和文档归属,列表与详情复用同一授权策略。成员离职后会话和第三方授权立即撤销,管理员导出操作写入审计。

× 常见误区

前端根据 role=member 隐藏管理按钮,但删除接口只检查是否登录。攻击者改请求中的 organizationId 就能读取他人数据;Token 永不过期,退出只清浏览器页面,离职账号仍可通过旧链接访问。

和工程师这样沟通

“权限判断请统一在服务端:先验证会话,再校验 tenantId、角色、资源归属和动作。默认拒绝,列表与详情共用策略;Token 设置短期过期与可撤销机制。所有管理员导出和权限变更写审计日志。”

05

HANDS-ON

必做实操任务

本节产出:“系统关系图、一次 API 调用与基础 SQL 练习”阶段任务中的《Session、Token、OAuth 与权限控制》一页实践卡

  1. 步骤 1为普通成员、内容管理员和组织管理员制作资源动作权限矩阵。

  2. 步骤 2画出登录、会话建立、过期刷新、退出和封禁的状态流程。

  3. 步骤 3审计一个详情接口,验证修改资源 ID 后服务端仍执行归属校验。

  4. 步骤 4为第三方登录定义最小 scope、同意文案、回调和撤销入口。

○
实践完成度 0/4

实践结果会自动保存在本机,并进入项目工坊的任务来源。

身份与权限威胁检查系统与资源:____ 身份来源:密码 / SSO / OAuth / 其他____ 会话方式:____ 过期:____ 刷新:____ 撤销:____ 角色|资源范围|查看|创建|修改|删除|导出:____ 资源级条件:tenantId____ ownerId____ status____ 默认拒绝位置:____ 前端体验控制:____ 服务端权威校验:____ OAuth scope:____ 回调:____ 撤销:____ 高风险再认证:____ 审计事件与保留期:____ 越权测试:____
06

CHECKLIST

产品经理工作检查表

07

MASTERY QUIZ

掌握测验

达到 60% 即可完成本课。

1认证与授权的区别是什么?
2前端隐藏删除按钮为什么不构成安全授权?
3OAuth scope 应遵循什么原则?
08

INTERVIEW

常见面试题

如何设计一个企业知识库的权限系统?
展开参考回答

先区分身份认证、会话和授权,再定义组织、角色、资源归属和动作矩阵;服务端默认拒绝并逐请求校验 tenant、角色、owner 与状态,列表和详情规则一致。凭证设置过期、刷新、撤销和高风险再认证,OAuth 最小 scope,权限变更、导出与管理员动作进入审计,并通过水平越权测试验证。

09

RECAP & FURTHER READING

重点回顾、延伸阅读与下一步

一句话回顾认证回答“你是谁”,授权回答“你能做什么”,二者不能混为一谈。
  1. 1

    围绕“Session、Token、OAuth 与权限控制”继续阅读:查阅对应技术的官方入门文档,重点核对输入输出、失败方式、权限边界与可观测性。

  2. 2

    用“Session、Token、OAuth”作为检索词,分别写下一条定义、一条适用边界和一个反例。

  3. 3

    对照本课正确案例与反例,寻找一个公开案例并记录其中可复用的判断与不能照搬的条件。