第4章 用户旅程中的权限触点

权限触点是指在用户与系统交互的完整旅程中,每一个需要执行权限判断的关键节点。产品经理若不能准确识别这些触点,权限需求就会出现遗漏或描述过于笼统,导致开发阶段频繁返工、上线后出现越权漏洞。本章将沿着典型用户旅程,逐一拆解注册/登录、角色切换、功能使用、数据查看、审批流程五个核心触点的权限需求,并以RICE框架评估各需求的实现优先级。

本章学习目标:完成本章后,你能够将任意B端产品的用户旅程拆解为权限触点清单,并为每个触点输出结构化的权限需求描述及RICE评分。
用户旅程权限触点全景图 从注册到审批,每个触点都需要明确的权限规则 注册/登录 身份验证·会话管理 角色切换 角色映射·权限继承 功能使用 功能级鉴权·按钮级控制 数据查看 行级过滤·列级脱敏 审批流程 流程级授权·动态审批 权限触点 = 用户旅程中需要做权限判断的关键节点 每个触点需从「用户场景 → 业务问题 → 需求拆解 → 方案表达」逐步细化 通过RICE评估确定各触点权限需求的实现优先级 身份认证 角色映射 功能鉴权 数据脱敏 流程授权

4.1 触点一:注册/登录

用户场景:新用户通过邮箱或手机号注册账号,老用户输入凭证登录系统,或通过第三方OAuth认证进入。

业务问题:未经身份验证的用户可能访问受限资源;会话劫持导致数据泄露;多端登录缺乏管控。

需求拆解:

  • 身份核验:校验账号/密码、短信验证码或生物特征
  • 会话管理:生成token、设置过期时间、支持主动注销
  • 设备绑定:限制同一账号同时在线的设备数量
  • 登录失败策略:连续失败n次后锁定账号并触发告警

方案表达:在PRD中使用「身份认证权限规则表」描述各身份类型可访问的初始页面和接口范围。

身份类型初始页面允许的接口范围会话有效期
未登录用户登录/注册页/api/auth/*—
已登录普通用户工作台首页/api/v1/*(受限)8小时
已登录管理员管理控制台/api/admin/*4小时(短时高风险)
最佳实践:注册/登录触点的权限规则应作为全局前置拦截器实现,业务层无需重复校验身份。在需求描述中明确标注「未认证用户拒绝访问任何业务接口」。

4.2 触点二:角色切换

用户场景:用户拥有多个角色(如项目管理员兼普通成员),在操作前切换到对应角色以获得相应权限集。

业务问题:角色切换后权限未及时刷新,导致越权操作;用户不清楚当前角色能做什么;角色继承关系混乱。

需求拆解:

  • 角色映射:建立用户与多个角色的关联,支持默认角色设置
  • 权限继承:子角色自动继承父角色的基础权限,仅追加差异
  • 切换鉴权:切换时校验目标角色是否已被授权给当前用户
  • 上下文隔离:切换角色后UI菜单、数据权限立即刷新,不残留上一角色缓存

方案表达:使用「角色-权限继承矩阵」明确每个角色的权限来源,避免重复定义。

角色名称父角色继承权限追加权限
项目成员—基础查看任务创建、评论
项目组长项目成员基础查看+任务创建+评论成员管理、看板编辑
项目管理员项目组长全部成员/组长权限项目设置、删除项目
常见遗漏:角色切换后,当前未提交的表单或未完成的审批草稿是否保留?务必在需求中说明「切换角色不中断已开始的业务流程,仅影响后续操作的权限判断」。

4.3 触点三:功能使用

用户场景:用户进入某个功能模块(如创建订单、编辑报表、删除记录),系统需判断其是否有权执行该操作。

业务问题:按钮级权限缺失导致用户看到不可操作的功能入口;功能权限与数据权限混淆;批量操作权限未单独定义。

需求拆解:

  • 功能级鉴权:按模块-子模块-操作三级定义权限粒度
  • 按钮级控制:无权限的按钮直接隐藏或置灰并提示
  • 操作类型区分:新增、编辑、删除、导出、打印等各为独立权限项
  • 批量操作权限:删除/导出等批量操作需单独授权,不与单条操作共用权限

方案表达:在PRD中附「功能权限矩阵」,每一行对应一个权限点,列包含模块、操作、描述、关联角色。

模块操作权限点ID描述
订单管理创建订单ORDER_CREATE允许新建销售订单
订单管理编辑订单ORDER_EDIT允许修改未审核的订单
订单管理删除订单ORDER_DELETE允许删除订单(需二次确认)
订单管理导出订单ORDER_EXPORT允许导出订单列表为Excel
需求描述示例:「角色A可查看订单列表,但『删除』按钮置灰并显示『暂无权限,请联系管理员』;角色B可删除订单,每次删除需输入二次确认密码。」

4.4 触点四:数据查看

用户场景:用户查看列表、详情或报表时,系统根据其权限过滤行级数据并脱敏列级敏感字段。

业务问题:销售A看到了销售B的客户数据;普通成员看到了项目的财务成本;手机号、身份证等敏感信息明文展示。

需求拆解:

  • 行级过滤:按组织树、地域、数据归属人等维度限制可见数据行
  • 列级脱敏:对手机号、身份证、银行卡等字段做掩码处理(如138****1234)
  • 导出限制:无权限的数据行在导出时自动排除,脱敏字段导出仍保持脱敏
  • 数据时效:某些历史数据仅限特定角色查看(如仅管理员可查看已删除的订单)

方案表达:用「数据权限规则表」描述每个数据实体的行过滤条件和列脱敏规则。

数据实体角色行过滤条件脱敏列
客户列表普通销售归属人 = 当前用户手机号(掩码)、邮箱(掩码)
客户列表销售主管归属部门 = 当前用户部门手机号(掩码)
客户列表系统管理员全部无脱敏
关键检查点:数据查看权限是最容易遗漏的触点。建议在PRD中为每个列表页和详情页单独标注「行级权限规则」和「列级脱敏字段」,并在验收时逐条打标。

4.5 触点五:审批流程

用户场景:用户提交审批单(如采购申请、合同签署),系统按预设规则将审批任务推送给有权限的审批人,并在审批过程中动态判断操作权限。

业务问题:审批人越权查看无关单据;审批转交后权限未正确迁移;审批附件中包含了审批人无权限查看的数据。

需求拆解:

  • 流程级授权:按审批节点定义可查看的字段范围和操作(同意/驳回/转交)
  • 动态审批人:根据金额、部门、物料类型等字段自动匹配审批人
  • 审批转交:转交时携带全部上下文权限,接收人获得该审批节点的临时权限
  • 审批附件脱敏:附件中的敏感字段需与详情页保持一致的脱敏规则

方案表达:在PRD中使用「审批节点权限配置表」描述每个审批节点的可操作范围。

审批节点可查看字段可执行操作自动匹配规则
部门主管审批全部申请字段同意、驳回申请金额 ≤ 5万
财务经理审批全部申请字段+财务预算同意、驳回、转交5万 < 申请金额 ≤ 20万
总经理审批全部字段+历史审批记录同意、驳回、转交、加签申请金额 > 20万
易错点:审批人可能同时是流程发起者的上级和另一个部门的成员。需明确「审批权限按审批节点绑定,不与用户的常规角色权限混用」,避免审批人通过审批流程越权查看无关数据。

4.6 跨触点权限字段定义总表

将上述五个触点的权限需求提炼为统一字段,便于在PRD中引用和维护。以下为各触点共用的核心权限字段定义:

字段名称类型所属触点描述
AuthToken字符串注册/登录用户会话身份标识,用于后续所有鉴权请求
RoleId整数角色切换当前激活的角色ID,决定用户的功能权限
PermissionCode字符串功能使用功能权限唯一编码,如 ORDER_CREATE
DataRowFilter表达式数据查看行级过滤条件,如 owner_id = {currentUserId}
ColumnMaskJSON数据查看列级脱敏规则,如 {"phone": "MASK"}
ApprovalNodeId整数审批流程当前审批节点ID,关联该节点的可操作范围
字段命名规范:建议权限字段统一使用「驼峰命名」并以英文为主,便于开发和QA同学直接引用。中文描述仅在PRD文档中展示,代码和接口文档中保持一致。

4.7 RICE优先级评估

对上述五个触点的权限需求进行RICE评分,确定实现优先级。评分标准:Reach(影响用户数/月)、Impact(对业务的影响度,1~5)、Confidence(需求确定性,%)、Effort(人天)。

权限需求ReachImpactConfidenceEffortRICE 得分
注册/登录身份验证10,0005100%86,250
角色切换与继承3,000490%12900
功能级按钮鉴权8,000595%201,900
数据行级过滤6,000485%25816
数据列级脱敏6,000380%15960
审批流程授权2,000590%30300
RICE排序结果:注册/登录身份验证(6,250)> 功能级按钮鉴权(1,900)> 数据列级脱敏(960)> 角色切换与继承(900)> 数据行级过滤(816)> 审批流程授权(300)。建议按此顺序分阶段交付。

4.8 指标验证

每个权限触点需求上线后,通过以下指标验证是否达到预期效果:

  • 认证成功率:注册/登录流程中,合法用户一次认证通过率 ≥ 99.5%
  • 角色切换延迟:切换角色后权限刷新时间 ≤ 500ms
  • 功能越权拦截率:未授权操作被拦截的比例 = 100%(零漏拦截)
  • 数据脱敏覆盖率:敏感字段脱敏规则覆盖率 = 100%
  • 审批流转正确率:审批单自动匹配到正确审批人的比例 ≥ 98%
验收红线:数据越权和功能越权属于P0级缺陷,上线前必须通过全量权限用例的自动化回归测试。任何一条越权路径未闭环,均不允许发布。

4.9 验收标准

针对每个触点的权限需求,制定可量化的验收条目:

触点验收条目验收方式
注册/登录未登录用户访问业务接口返回401,不暴露业务数据接口测试+抓包验证
角色切换切换角色后菜单和操作按钮在3秒内更新为对应权限集UI自动化+人工抽检
功能使用无权限的按钮隐藏或置灰,不可通过URL直接访问安全扫描+前端路由测试
数据查看用户A无法在列表或详情中看到用户B的数据数据交叉验证+批量导出检查
审批流程审批人仅能看到当前节点授权的字段,附件同步脱敏逐节点权限矩阵对照验收
验收工具建议:使用权限矩阵对照表(PRD中的权限定义 → 测试用例 → 验收结果),逐条打标通过/不通过,确保没有遗漏。

4.10 交付物模板

以下模板可直接复制到PRD的「权限需求」章节中,按触点逐一填写。

## 权限触点需求描述模板

### 触点名称:[注册/登录 / 角色切换 / 功能使用 / 数据查看 / 审批流程]

**用户场景:**
[描述典型用户在该触点的操作路径]

**业务问题:**
[描述未处理权限时可能出现的风险]

**需求拆解:**
1. [需求点1]
2. [需求点2]
3. [需求点3]

**方案表达:**
- 权限规则:[明确的权限判断逻辑]
- 异常处理:[无权限时的UI表现或接口返回]
- 关联字段:[引用的权限字段ID]

**权限字段定义:**
| 字段名 | 类型 | 描述 |
|--------|------|------|
| [字段] | [类型] | [说明] |

**RICE评估:**
Reach: [数值]  Impact: [1-5]  Confidence: [%]  Effort: [人天]
→ RICE得分:[自动计算]

**验收标准:**
- [验收条目1]
- [验收条目2]
使用建议:将上述模板作为PRD中的固定章节,每个触点独立一个二级标题。开发评审时直接按模板逐条过审,可减少80%的权限需求沟通返工。