Skip to content

安全架构设计流程标准

文档编号: SYS-STD-ARCH-SEC-001
版本: 1.0
创建日期: 2026-03-08
作者: 架构师
状态: ✅ 已生效


1. 目的

本文档定义安全架构设计的标准化流程,确保系统的认证授权、数据安全、传输安全等方案满足企业安全要求。


2. 适用范围

适用于System平台及同类项目的安全架构设计工作,包括:

  • 认证授权架构设计
  • 数据安全架构设计
  • 传输安全设计
  • 审计日志设计
  • 密钥管理设计

3. 设计原则

3.1 认证授权原则

  1. 标准协议:采用OAuth 2.0 + JWT标准协议
  2. 双Token机制:Access Token + Refresh Token分离
  3. 最小权限:用户仅拥有完成工作所需的最小权限
  4. 无状态设计:服务端无会话状态,支持水平扩展

3.2 数据安全原则

  1. 传输加密:所有数据传输采用TLS 1.3加密
  2. 存储加密:敏感数据字段级加密存储
  3. 数据脱敏:敏感数据展示时脱敏处理
  4. 审计完整:所有数据操作可追溯

4. 设计流程

4.1 流程概览

┌─────────────────────────────────────────────────────────────┐
│                    安全架构设计流程                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 认证架构 ──▶ 2. 授权架构 ──▶ 3. 传输安全              │
│       │                │                │                   │
│       ▼                ▼                ▼                   │
│  ┌─────────┐      ┌─────────┐      ┌─────────┐             │
│  │JWT设计  │      │RBAC模型 │      │TLS配置  │             │
│  │Token存储│      │权限粒度 │      │证书管理 │             │
│  │前端安全 │      │数据权限 │      │HSTS     │             │
│  └─────────┘      └─────────┘      └─────────┘             │
│                                                             │
│  4. 数据安全 ──▶ 5. 审计日志 ──▶ 6. 架构评审             │
│       │                │                │                   │
│       ▼                ▼                ▼                   │
│  ┌─────────┐      ┌─────────┐      ┌─────────┐             │
│  │加密方案 │      │操作日志 │      │技术评审 │             │
│  │脱敏规则 │      │数据日志 │      │签字确认 │             │
│  │密钥管理 │      │登录日志 │      │         │             │
│  └─────────┘      └─────────┘      └─────────┘             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

4.2 详细步骤

步骤1:认证架构设计

输入

  • 业务需求文档
  • 用户场景分析
  • 多租户需求

活动

  1. JWT Token设计

    • Access Token:2小时有效期,存内存
    • Refresh Token:30天有效期,存HttpOnly Cookie
    • Token Payload包含:userId, username, tenantId, roles, permissions
  2. Token存储策略

    • Access Token:Pinia/Vuex内存存储
    • Refresh Token:HttpOnly + Secure + SameSite=Strict Cookie
    • 权限信息:sessionStorage临时缓存
  3. 前端Token安全

    • Axios请求拦截器自动添加Token
    • 401自动刷新Token,请求队列处理并发
    • XSS防护(HTML转义、URL净化)
    • 页面可见性监听(长时间未激活清理数据)
  4. 多租户支持

    • X-Tenant-Id请求头传递租户ID
    • 后端拦截器自动解析租户上下文

输出

  • JWT Token设计方案
  • 前端Token管理代码
  • Token刷新流程图

验收标准

  • [ ] Token双机制设计完成
  • [ ] 前端安全代码实现
  • [ ] 多租户方案确定

步骤2:授权架构设计

输入

  • 业务功能清单
  • 用户角色定义
  • 数据权限需求

活动

  1. RBAC模型设计

    • 用户-角色-权限三级模型
    • 用户表、角色表、权限表、关联表设计
  2. 权限粒度定义

    • 菜单权限:控制页面菜单显示
    • 按钮权限:控制操作按钮显示
    • 接口权限:控制API访问
    • 数据权限:控制数据范围(全部/部门/个人)
  3. 权限注解设计

    • @RequireLogin:要求登录
    • @RequireRole:要求角色
    • @RequirePermission:要求权限
    • @DataPermission:数据权限
  4. 数据权限实现

    • MyBatis Plus拦截器自动添加数据范围过滤
    • 支持:ALL, DEPT_ONLY, DEPT_AND_CHILD, SELF_ONLY

输出

  • RBAC权限模型图
  • 权限注解代码
  • 数据权限拦截器

验收标准

  • [ ] RBAC模型设计完成
  • [ ] 四级权限粒度定义
  • [ ] 数据权限拦截器实现

步骤3:传输安全设计

输入

  • 部署架构设计
  • 域名规划

活动

  1. TLS 1.3配置

    • Nginx SSL配置
    • 强制HTTPS跳转
    • HSTS响应头
  2. 证书管理

    • Let's Encrypt自动证书
    • cert-manager自动续期
    • 证书监控告警
  3. 安全响应头

    • X-Frame-Options: DENY
    • X-Content-Type-Options: nosniff
    • X-XSS-Protection: 1; mode=block
    • Content-Security-Policy

输出

  • Nginx SSL配置
  • 证书管理配置
  • 安全响应头配置

验收标准

  • [ ] TLS 1.3配置完成
  • [ ] 证书自动续期配置
  • [ ] 安全响应头配置完成

步骤4:数据安全设计

输入

  • 数据库设计
  • 敏感字段清单
  • 合规要求

活动

  1. 数据库加密

    • MySQL TDE透明数据加密
    • 列级加密(AES-256-GCM)
    • @Encrypted注解实现自动加解密
  2. 数据脱敏

    • 手机号:138****8888
    • 邮箱:z***@linsir.com
    • 身份证号:110101********1234
    • @Masked注解实现自动脱敏
  3. 密钥管理

    • HashiCorp Vault密钥存储
    • 密钥缓存(Redis,1小时TTL)
    • 密钥轮换机制
  4. 数据分类分级

    • 公开数据:无需保护
    • 内部数据:需认证
    • 敏感数据:需授权+加密
    • 机密数据:严格授权+HSM

输出

  • 数据库加密方案
  • 脱敏规则配置
  • 密钥管理方案

验收标准

  • [ ] 列级加密实现
  • [ ] 脱敏规则配置
  • [ ] 密钥管理方案完成

步骤5:审计日志设计

输入

  • 业务操作清单
  • 合规审计要求

活动

  1. 操作日志

    • @OperationLog注解
    • AOP拦截记录操作
    • 记录:模块、类型、用户、IP、参数、结果
  2. 数据变更日志

    • MyBatis Plus拦截器
    • 记录:表名、变更类型、旧数据、新数据、差异
  3. 登录日志

    • 记录:用户、IP、地点、UA、状态
    • 登录失败告警
  4. 日志存储

    • MySQL结构化存储
    • ELK全文检索
    • 定期归档清理

输出

  • 审计日志表结构
  • 日志注解代码
  • 日志查询接口

验收标准

  • [ ] 三种日志类型实现
  • [ ] 日志存储方案完成
  • [ ] 日志查询接口完成

步骤6:架构评审

输入

  • 认证授权架构文档
  • 数据安全架构文档

活动

  1. 评审准备

    • 组织评审会议
    • 分发评审材料
    • 确定评审人员
  2. 评审执行

    • 认证授权方案评审
    • 数据安全方案评审
    • 传输安全评审
    • 审计日志评审
  3. 问题跟踪

    • 记录评审问题
    • 制定修复计划
    • 验证修复结果
  4. 评审结论

    • 评审决议(通过/不通过)
    • 签字确认

输出

  • 安全架构评审记录
  • 问题跟踪表
  • 评审签字表

验收标准

  • [ ] 评审问题已修复
  • [ ] 所有评审人员签字

5. 关键设计要点

5.1 Token安全要点

要点实现方式说明
Access Token内存存储Pinia/Vuex,页面刷新丢失
Refresh TokenHttpOnly CookieSameSite=Strict, Secure=true
Token刷新自动静默401时自动刷新,用户无感知
并发控制请求队列刷新Token时排队等待

5.2 权限控制要点

要点实现方式说明
菜单权限前端路由守卫根据permissions过滤路由
按钮权限v-permission指令无权限时隐藏按钮
接口权限@RequirePermission注解拦截校验
数据权限MyBatis拦截器自动添加数据范围过滤

5.3 数据加密要点

要点实现方式说明
传输加密TLS 1.3强制HTTPS
存储加密AES-256-GCM列级加密
密钥管理HashiCorp Vault安全存储密钥
密码加密bcrypt10轮salt

6. 文档模板

6.1 认证授权架构文档模板

markdown
# 认证授权架构设计

## 1. 概述
## 2. 认证授权架构总览
## 3. 认证架构设计
## 4. 授权架构设计
## 5. SSO单点登录架构
## 6. 前端Token安全处理
## 7. 后端安全配置
## 8. 接口安全设计

6.2 数据安全架构文档模板

markdown
# 数据安全架构设计

## 1. 概述
## 2. 数据安全架构总览
## 3. 传输层安全
## 4. 存储层加密
## 5. 数据脱敏
## 6. 审计日志
## 7. 密钥管理
## 8. 数据分类与分级

7. 检查清单

7.1 认证授权检查清单

  • [ ] JWT Token设计完成(Access + Refresh)
  • [ ] Token存储策略确定(内存 + HttpOnly Cookie)
  • [ ] 前端Token安全代码实现
  • [ ] 多租户支持(X-Tenant-Id请求头)
  • [ ] RBAC权限模型设计
  • [ ] 四级权限粒度定义
  • [ ] 数据权限拦截器实现
  • [ ] SSO单点登录方案

7.2 数据安全检查清单

  • [ ] TLS 1.3配置完成
  • [ ] 证书自动续期配置
  • [ ] 数据库列级加密实现
  • [ ] 数据脱敏规则配置
  • [ ] 审计日志三种类型实现
  • [ ] 密钥管理方案(Vault)
  • [ ] 数据分类分级定义

8. 常见错误避免

  1. ❌ Token存储在localStorage

    • 错误:易受XSS攻击窃取
    • 正确:Access Token存内存,Refresh Token存HttpOnly Cookie
  2. ❌ 单Token机制

    • 错误:Token过期需重新登录
    • 正确:双Token机制,Access Token过期用Refresh Token刷新
  3. ❌ 明文存储敏感数据

    • 错误:数据库明文存储手机号、身份证号
    • 正确:列级AES加密存储
  4. ❌ 无审计日志

    • 错误:无法追溯数据操作
    • 正确:操作日志、数据变更日志、登录日志完整记录

9. 修订记录

版本日期作者变更内容
1.02026-03-08架构师初始版本,定义安全架构设计流程标准

Released under the MIT License.