安全合规能力

核心定位

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

解决什么问题

合规需求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