01|身份与权限
账号、OA权限映射与客户授权
内部员工通过OA登录,客户使用平台账号;新系统只维护建站服务范围和客户站点权限。
账号体系
内部员工与外部客户使用两套身份来源
内部员工由OA认证,客户账号由建站平台认证;两者最终都进入统一授权中间件。
| 身份 | 认证来源 | 平台保存 | 权限组成 |
|---|---|---|---|
| 内部员工 | OA OAuth2/OIDC、SAML或企业现有SSO | oa_user_id、姓名/部门审计快照、状态、最近同步时间;不保存OA密码 | OA身份有效 ∩ 平台角色映射 ∩ 客户/站点服务范围 ∩ 高风险条件 |
| 客户企业主 | 建站平台邀请激活,可选邮箱/手机+MFA | user、tenant_membership、企业主标识、设备和会话 | 客户租户范围 ∩ 角色 ∩ 站点范围 ∩ 套餐功能 |
| 客户编辑/数据查看 | 企业主邀请或总后台代邀 | membership、角色、站点授权和有效期 | 只能访问被授权站点;编辑、发布、域名、数据权限分开 |
| 系统服务账号 | 平台签发的服务凭据 | client_id、scope、密钥哈希、轮换时间 | 最小Scope、IP/网络限制和调用配额 |
OA接入
OA只提供身份和内部业务引用
| 接口/事件 | 调用方向 | 用途 | 失败策略 |
|---|---|---|---|
| SSO authorize/token/userinfo | 平台→OA | 员工登录并取得稳定oa_user_id、部门、角色声明 | OA不可用时不允许新登录;已登录会话按风险设置短期宽限 |
| 员工状态/角色变更Webhook | OA→平台 | 禁用员工、部门/角色变化后撤销或重算权限 | 签名、时间戳、event_id幂等;Webhook失败由定时对账补偿 |
| 员工/组织增量查询 | 平台→OA | 每日或小时级权限对账,不做全量人员复制 | 只缓存授权必需字段;同步批次可重跑 |
| 内部项目查询 | 平台→OA | 校验oa_project_id、客户关联、负责人和状态;展示跳转链接 | OA项目不可用时保留最近快照并禁止新增高风险发布授权 |
| 站点状态摘要回传(可选) | 平台→OA | 回传站点URL、发布状态、到期日和平台跳转链接 | 异步重试;失败不影响建站主流程 |
必须在M0确认
OA实际支持哪一种SSO协议、用户唯一ID是否永久稳定、角色声明格式、项目接口、Webhook签名、限流、超时、测试环境和停机窗口。若OA接口不完整,使用“OA适配器”统一封装,不让业务代码直接依赖OA字段。
平台角色
不复制OA角色管理,只维护角色映射和服务范围
| 平台角色 | 典型OA来源 | 客户/站点范围 | 主要能力 |
|---|---|---|---|
| 平台超级管理员 | OA指定管理员角色 | 全平台;使用需二次验证 | 平台配置、模板发布、资源、审计;不可绕过敏感操作审计 |
| 客户运营管理员 | OA运营主管角色 | 被分配客户集合/部门服务范围 | 开通客户、分配套餐、查看站点、协助建站、发起发布 |
| 建站制作人员 | OA运营/设计/技术角色 | 被分配站点集合 | 编辑内容、模板实例、预览;发布需独立权限 |
| 审核人员 | OA内容/合规角色 | 区域或站点类型范围 | 审核内容、模板和发布单 |
| 运维人员 | OA技术/运维角色 | 部署资源或全部站点 | 发布、回滚、域名、证书、备份和告警处理 |
| 客户企业主 | 平台客户账号 | 本租户全部站点 | 成员、站点、域名、发布申请和数据 |
| 客户站点管理员 | 平台客户账号 | 指定站点 | 内容、页面、成员授权;是否可发布由企业主授予 |
| 客户内容编辑/数据查看 | 平台客户账号 | 指定站点 | 分别只编辑内容或只查看询盘/统计 |
SUPPORT-SESSION
模拟客户与协助会话
页面:总后台客户详情 → 发起协助;协助会话审计
模块目标
内部员工在客户授权或工单场景下进入客户视角协助操作。
主流程
填写原因/工单→权限校验→创建最长30分钟会话→顶部持续提示真实员工和客户身份→结束。
关键规则
- 禁止支付、改密码/MFA、生成API密钥、域名解析、删除站点和全量导出。
- 记录真实主体、客户主体、起止、页面路径、动作和结果。
- 客户可查看近期协助记录,敏感操作仍需要客户确认。
异常边界
- 员工权限被收回时立即终止协助会话。
- 浏览器关闭不代表会话结束,服务端到期强制失效。
核心数据
impersonation_session、support_reason、audit_log
接口 / 事件
POST /support-sessions;DELETE /support-sessions/{id};support_session.ended
验收标准
- 被禁止动作在页面和API两层拒绝。
- 会话到期、员工禁用或主动退出后令牌无法继续使用。
- 审计能够还原完整操作链。