一、权限设计核心原则
1. 最小权限原则
- 每个角色仅授予完成工作所需的最低权限(如采购员仅能查看/编辑自己负责的供应商数据)。
- 避免“超级管理员”滥用,通过分级授权机制分散权力。
2. 职责分离原则
- 关键操作需多人协作完成(如订单审批需采购经理+财务复核)。
- 禁止同一用户同时拥有相互冲突的权限(如既创建订单又审批订单)。
3. 动态权限调整
- 根据用户角色、部门、项目动态分配权限(如临时项目组成员仅在项目期内拥有访问权)。
- 支持权限的即时生效与回收(如员工离职后系统自动冻结账号)。
二、权限细化方向
1. 用户角色分层设计
- 基础角色:
- 供应商管理员(管理供应商资质、合同)
- 采购员(创建/修改采购订单)
- 仓储管理员(入库/出库操作)
- 财务人员(对账、付款审批)
- 数据分析师(查看报表,无修改权限)
- 高级角色:
- 区域经理(管理下属城市业务数据)
- 审计员(查看所有操作日志,无业务操作权限)
- 系统管理员(仅管理用户账号,不涉及业务数据)
2. 数据权限控制
- 字段级权限:
- 采购员可查看商品价格,但无法修改成本价字段。
- 供应商仅能看到自己合作的商品数据。
- 行级权限:
- 仓储管理员只能操作自己负责的仓库库存。
- 销售代表仅能查看分配给自己的客户订单。
- 范围权限:
- 城市经理可查看本城市所有数据,区域总监可查看多个城市数据。
3. 操作权限控制
- 功能模块权限:
- 禁止普通用户访问“系统配置”模块。
- 限制供应商修改合同条款的权限。
- 操作类型权限:
- 允许查看订单,但禁止删除订单。
- 允许导出报表,但禁止批量导出敏感数据。
- 时间窗口权限:
- 仅允许在工作时间段内提交付款申请。
- 节假日禁止执行高风险操作(如大额转账)。
4. 特殊场景权限
- 临时权限:
- 新员工入职时分配30天试用期权限,到期后自动回收。
- 审计期间临时开放历史数据查看权限。
- 应急权限:
- 系统故障时,授权技术团队临时提升权限以修复问题。
- 所有应急操作需记录日志并事后复核。
三、技术实现方案
1. RBAC+ABAC混合模型
- RBAC(基于角色):定义固定角色(如采购员、财务)并分配权限集合。
- ABAC(基于属性):通过动态条件(如时间、地点、数据标签)进一步限制权限(如仅允许在办公室IP访问财务系统)。
2. 权限中间件
- 在API层集成权限校验,所有接口调用前检查用户权限。
- 使用JWT或OAuth2.0传递权限令牌,避免重复鉴权。
3. 数据脱敏与审计
- 对敏感字段(如客户手机号)进行脱敏显示。
- 记录所有权限变更和操作日志,支持按用户、时间、操作类型追溯。
4. 权限管理后台
- 可视化界面配置角色、权限、数据范围。
- 支持权限冲突检测(如同一用户被分配相互排斥的权限时报警)。
四、运维与安全加固
1. 定期权限审计
- 每月生成权限使用报告,识别长期未登录或权限过度的账号。
- 季度性复核角色权限,确保与业务需求匹配。
2. 多因素认证(MFA)
- 对高风险操作(如修改支付信息)强制要求二次验证(如短信验证码)。
3. 权限回收机制
- 员工调岗或离职时,系统自动触发权限回收流程。
- 离职员工账号冻结后,数据访问记录保留至少6个月。
4. 应急响应计划
- 制定权限滥用或泄露的应急预案(如立即冻结账号、通知相关方)。
- 定期模拟权限攻击测试(如尝试越权访问),修复漏洞。
五、示例场景
- 场景1:采购订单审批
- 采购员创建订单 → 部门主管审批(仅能查看/审批自己部门的订单) → 财务复核(需同时满足“订单金额>10万”和“供应商信用良好”条件)。
- 场景2:供应商数据访问
- 供应商A仅能查看/编辑自己提供的商品信息,无法查看其他供应商数据或系统全局设置。
通过上述细化方案,快驴生鲜系统可实现“按需知密、最小够用、全程可控”的权限管理体系,有效降低内部操作风险,提升业务合规性。