2.5 KiB
2.5 KiB
家庭角色权限矩阵 V0.1
家庭角色用于控制一般管理能力,不代表录音、下载、分享或其他高敏感资源授权。资源访问始终继续检查客户组织、家庭成员、长者代理关系、分项授权、资源分享授权和资源状态。
家庭工作台调整非所有者成员角色时,先固定目标成员、当前角色和成员行版本,再选择管理员、编辑者或查看者,并展示本矩阵对应的能力变化。选择另一目标角色会要求重新确认;取消、切换家庭或刷新不会写入。最终PATCH继续由服务端验证household.member.manage、所有者保护、租户边界和If-Match,页面说明不能替代服务端授权。
| 能力 | 所有者 | 管理员 | 编辑者 | 查看者 |
|---|---|---|---|---|
| 查看家庭基本信息 | ✓ | ✓ | ✓ | ✓ |
| 修改家庭基本信息 | ✓ | ✓ | ||
| 管理成员 | ✓ | ✓ | ||
| 转移家庭所有权 | ✓ | |||
| 查看长者基本资料 | ✓ | ✓ | ✓ | ✓ |
| 修改长者基本资料 | ✓ | ✓ | ✓ | |
| 查看通话文字结果 | ✓ | ✓ | ✓ | ✓ |
| 核对故事候选 | ✓ | ✓ | ✓ | |
| 管理普通设备配置 | ✓ | ✓ | ✓ | |
| 查看隐私请求进度 | ✓ | ✓ | ||
| 提交隐私请求 | ✓ | |||
| 播放原录音 | 需独立授权 | 需独立授权 | 需独立授权 | 需独立授权 |
| 下载原录音 | 需独立授权 | 需独立授权 | 需独立授权 | 需独立授权 |
服务端判断顺序
- 验证OIDC令牌签发方、使用对象、签名、有效期和Subject。
- 通过
issuer + subject查询平台账号,不接受浏览器指定租户边界。 - 通过目标资源反查客户组织和家庭,再匹配当前身份的有效账号与成员关系。
- 根据成员角色检查一般业务能力。
- 后续领域接口继续检查长者关系、分项授权、具体资源授权和资源状态。
- 跨客户组织、跨家庭和无权访问统一返回
RESOURCE_ACCESS_DENIED,不泄露资源是否存在。
本地合成账号
本地Keycloak Realm为voice-local,仅用于合成数据联调:
| 用户名 | 密码 | 客户组织 | 家庭角色 |
|---|---|---|---|
owner |
LocalOnly123! |
合成数据一号客户组织 | 所有者 |
editor |
LocalOnly123! |
合成数据一号客户组织 | 编辑者 |
outsider |
LocalOnly123! |
合成数据二号客户组织 | 查看者 |
这些密码不得复制到任何共享、测试、预生产或生产环境。