安全合规能力

安全合规能力

核心定位

一句话说清楚:为企业构建纵深安全防御体系,满足等保三级、金融级安全审计要求,让业务系统「天生合规」。

解决什么问题

合规需求 RuoYiPlus 安全方案
等保三级认证 身份鉴别 + 访问控制 + 安全审计 + 数据完整性 + 数据保密性
金融级审计 区块链哈希链存证 + 防篡改操作日志
数据隐私保护 敏感字段自动脱敏 + 传输加密 + 存储加密
风险防控 实时风险监控 + 异常行为告警 + 账号冻结

适合什么样的用户

mindmap root((安全合规需求用户)) 金融机构 等保三级认证 金融审计合规 医疗行业 HIPAA 合规 患者数据保护 政务平台 等级保护 数据安全 SaaS 企业 多租户安全隔离 数据隐私合规

用户角色

graph TB subgraph "安全角色" SA["安全管理员
配置安全策略"] AUDITOR["审计员
审查操作日志"] ADMIN["系统管理员
运维安全"] DEV["开发人员
安全编码"] end SA -->|配置| MFA["多因素认证"] SA -->|配置| PWD["密码策略"] AUDITOR -->|审查| LOG["操作日志"] AUDITOR -->|生成| REPORT["合规报告"] ADMIN -->|管理| KEY["密钥管理"] ADMIN -->|监控| ALERT["安全告警"] DEV -->|遵循| SECURE["安全编码规范"]

1. 安全体系架构

graph TB subgraph "RuoYiPlus 安全合规体系" subgraph "身份认证层" A1["IAM 中心"] A2["多因素认证"] A3["SSO 单点登录"] end subgraph "访问控制层" B1["RBAC 权限"] B2["数据权限"] B3["API 权限"] end subgraph "数据安全层" C1["加密脱敏"] C2["防篡改"] C3["数据分级"] end subgraph "安全审计层" D1["Audit 中心"] D2["风险预警"] D3["合规报表"] end subgraph "安全防护层" E1["WAF"] E2["防注入"] E3["防 XSS"] E4["防 CSRF"] E5["防 DDoS"] E6["密钥管理"] end end A1 --> B1 A2 --> B1 A3 --> B1 B1 --> C1 B2 --> C1 B3 --> C1 C1 --> D1 C2 --> D1 C3 --> D1 D1 --> E1

2. 身份认证安全

2.1 多因素认证 (MFA)

graph LR A["用户登录"] --> B{"是否需要 MFA?"} B -->|是| C["输入密码"] C --> D{"选择验证方式"} D --> E["短信 OTP"] D --> F["邮件 OTP"] D --> G["TOTP"] D --> H["硬件 Key"] E --> I["认证成功"] F --> I G --> I H --> I B -->|否| I
认证方式 安全等级 说明
密码 + 验证码 ⭐⭐ 基础双因素
密码 + 短信 OTP ⭐⭐⭐ 动态短信验证码
密码 + 邮件 OTP ⭐⭐⭐ 邮件验证码
密码 + TOTP ⭐⭐⭐⭐ 时间同步动态口令
密码 + 硬件 Key ⭐⭐⭐⭐⭐ FIDO2/U2F 最高安全

2.2 SSO 单点登录

sequenceDiagram participant User as 用户 participant App1 as 应用1 participant IAM as IAM 认证中心 participant App2 as 应用2 User->>App1: 访问应用1 App1->>IAM: 未认证,跳转认证 User->>IAM: 输入凭证 IAM->>IAM: 认证成功,签发 Token IAM->>App1: 返回 Token User->>App2: 访问应用2 App2->>IAM: 验证 Token IAM->>App2: Token 有效 App2->>User: 直接访问
协议 支持 适用场景
OAuth 2.0 第三方应用授权
OIDC 现代应用 SSO
SAML 2.0 企业级 SSO
LDAP 企业目录集成

2.3 登录安全策略

security:
  login:
    password:
      min-length: 8
      require-uppercase: true
      require-lowercase: true
      require-digit: true
      require-special: true
      expiry-days: 90
      history-count: 5
    lockout:
      max-failed: 5
      lockout-duration: 30m
    abnormal:
      enabled: true
      notify-on-new-device: true
      block-high-risk: true

3. 访问控制

3.1 RBAC 权限模型

graph TB A["用户"] --> B["角色"] B --> C["菜单权限"] B --> D["操作权限"] B --> E["数据权限"] A --> F["岗位"] F --> G["角色继承"] F --> H["数据范围"]

3.2 数据权限控制

graph LR A["数据请求"] --> B{"权限类型"} B -->|全部数据| C["*"] B -->|本部门数据| D["dept_id = current.dept_id"] B -->|本人数据| E["creator_id = current.user_id"] B -->|自定义数据| F["region_id IN current.regions"] C --> G["返回数据"] D --> G E --> G F --> G

3.3 API 权限控制

// 方法级权限控制
@RequiresPermissions(value = {"system:user:add", "system:user:edit"}, logical = Logical.OR)
public void saveUser(User user) { }

// 角色权限控制
@RequiresRoles(value = {"admin", "manager"})
public void exportReport() { }

// 自定义权限校验
@RequiresCustomPermissions(key = "data:export:financial")
public void exportFinancial() { }

4. 数据安全

4.1 敏感字段脱敏流程

graph TB A["数据查询"] --> B["脱敏规则匹配"] B --> C{"字段类型"} C -->|手机号| D["中间4位脱敏"] C -->|邮箱| E["用户名脱敏"] C -->|身份证| F["出生日期+后4位"] C -->|银行卡| G["仅后4位"] C -->|姓名| H["姓氏外脱敏"] C -->|密码| I["完全隐藏"] D --> J["返回脱敏结果"] E --> J F --> J G --> J H --> J I --> J

4.2 传输与存储安全

配置项 说明
HTTPS 强制 全站 HTTPS,HTTP 自动跳转
TLS 版本 TLS 1.3 (兼容 TLS 1.2)
HSTS 强制使用 HTTPS
数据库加密 AES 加密敏感字段

5. 审计追踪

5.1 审计事件采集

graph TB subgraph "审计事件采集" A1["登录审计"] A2["操作审计"] A3["权限审计"] A4["导出审计"] A5["敏感审计"] A6["API 审计"] end subgraph "审计处理" B1["事件解析"] B2["风险评分"] B3["规则匹配"] end subgraph "审计存储" C1["热数据"] C2["冷数据"] C3["区块链"] end A1 --> B1 A2 --> B1 A3 --> B1 A4 --> B1 A5 --> B1 A6 --> B1 B1 --> B2 B2 --> B3 B3 --> C1 B3 --> C2 B3 --> C3

5.2 区块链哈希链

graph TB subgraph "Genesis Block" A1["blockHash = SHA256"] A2["genesisData"] end subgraph "Block N" B1["blockHash = SHA256"] B2["previousHash"] B3["merkleRoot"] B4["signature"] end subgraph "Block N+1" C1["blockHash = SHA256"] C2["previousHash = Block N hash"] C3["merkleRoot"] C4["signature"] end A1 --> B2 B1 --> C2

6. 合规支持

6.1 等保三级覆盖

graph LR A["等保三级要求"] --> B["身份鉴别"] A --> C["访问控制"] A --> D["安全审计"] A --> E["数据完整性"] A --> F["数据保密性"] A --> G["备份恢复"] B --> H["MFA/SSO"] C --> I["RBAC/数据权限"] D --> J["Audit 中心"] E --> K["区块链哈希链"] F --> L["加密脱敏"] G --> M["数据备份方案"]
等保要求 实现方式 覆盖情况
身份鉴别 MFA/SSO ✅ 完整
访问控制 RBAC/数据权限 ✅ 完整
安全审计 Audit 中心 ✅ 完整
数据完整性 区块链哈希链 ✅ 完整
数据保密性 加密脱敏 ✅ 完整
备份恢复 数据备份方案 ✅ 完整

7. 安全监控

7.1 实时风险监控

graph TB subgraph "风险监控" A1["异地登录"] A2["暴力破解"] A3["异常查询"] A4["批量导出"] A5["权限滥用"] end subgraph "风险判断" B["风险引擎"] end subgraph "响应动作" C1["短信告警"] C2["账号冻结"] C3["日志标记"] C4["需要审批"] C5["实时告警"] end A1 --> B A2 --> B A3 --> B A4 --> B A5 --> B B --> C1 B --> C2 B --> C3 B --> C4 B --> C5
监控项 风险阈值 响应动作
异地登录 新城市登录 短信告警
暴力破解 5分钟失败>10次 账号冻结
异常查询 单用户>100次/分钟 日志标记
批量导出 >50条/分钟 需要审批
权限滥用 非工作时间操作核心数据 实时告警

8. 安全配置清单

配置项 建议值 说明
密码最小长度 12位 强密码策略
密码过期 90天 强制定期修改
登录失败锁定 5次 防暴力破解
MFA 强制 管理员必须开启
HTTPS 强制 全站加密
日志留存 1年 合规要求
会话超时 30分钟 自动登出
API 限流 100 QPS 防 DDoS

安全能力总览

graph TB subgraph "安全纵深防御" L1["🔐 身份认证层
MFA + SSO + 密码策略"] L2["🛡️ 访问控制层
RBAC + 数据权限 + API权限"] L3["🔒 数据安全层
脱敏 + 加密 + 防篡改"] L4["📋 审计追溯层
全链路审计 + 区块链存证"] L5["🚨 安全监控层
实时风险监控 + 自动响应"] end L1 --> L2 L2 --> L3 L3 --> L4 L4 --> L5
docs