Files
story/docs/permission-matrix.md

2.5 KiB

家庭角色权限矩阵 V0.1

家庭角色用于控制一般管理能力,不代表录音、下载、分享或其他高敏感资源授权。资源访问始终继续检查客户组织、家庭成员、长者代理关系、分项授权、资源分享授权和资源状态。

家庭工作台调整非所有者成员角色时,先固定目标成员、当前角色和成员行版本,再选择管理员、编辑者或查看者,并展示本矩阵对应的能力变化。选择另一目标角色会要求重新确认;取消、切换家庭或刷新不会写入。最终PATCH继续由服务端验证household.member.manage、所有者保护、租户边界和If-Match,页面说明不能替代服务端授权。

能力 所有者 管理员 编辑者 查看者
查看家庭基本信息 ✓ ✓ ✓ ✓
修改家庭基本信息 ✓ ✓
管理成员 ✓ ✓
转移家庭所有权 ✓
查看长者基本资料 ✓ ✓ ✓ ✓
修改长者基本资料 ✓ ✓ ✓
查看通话文字结果 ✓ ✓ ✓ ✓
核对故事候选 ✓ ✓ ✓
管理普通设备配置 ✓ ✓ ✓
查看隐私请求进度 ✓ ✓
提交隐私请求 ✓
播放原录音 需独立授权 需独立授权 需独立授权 需独立授权
下载原录音 需独立授权 需独立授权 需独立授权 需独立授权

服务端判断顺序

  1. 验证OIDC令牌签发方、使用对象、签名、有效期和Subject。
  2. 通过issuer + subject查询平台账号,不接受浏览器指定租户边界。
  3. 通过目标资源反查客户组织和家庭,再匹配当前身份的有效账号与成员关系。
  4. 根据成员角色检查一般业务能力。
  5. 后续领域接口继续检查长者关系、分项授权、具体资源授权和资源状态。
  6. 跨客户组织、跨家庭和无权访问统一返回RESOURCE_ACCESS_DENIED,不泄露资源是否存在。

本地合成账号

本地Keycloak Realm为voice-local,仅用于合成数据联调:

用户名 密码 客户组织 家庭角色
owner LocalOnly123! 合成数据一号客户组织 所有者
editor LocalOnly123! 合成数据一号客户组织 编辑者
outsider LocalOnly123! 合成数据二号客户组织 查看者

这些密码不得复制到任何共享、测试、预生产或生产环境。