prasadmhaskar/Advanced-Authentication-System
GitHub: prasadmhaskar/Advanced-Authentication-System
基于Spring Boot 3构建的企业级高安全认证后端系统,集成JWT轮换、OAuth2关联、MFA、自适应风险引擎和SOC安全运营功能。
Stars: 0 | Forks: 0
# 🛡️ 高级认证与安全系统






## 🚀 在线演示与文档
**交互式 API 文档 (Swagger UI):**
👉 **[https://prasad-auth-sys.duckdns.org/swagger-ui/index.html](https://prasad-auth-sys.duckdns.org/swagger-ui/index.html)**
### ⚡ 架构决策:无头 API
本系统通过 Swagger UI 采用 **API 优先架构**,以确保绝对的安全透明度。
* **无 UI 混淆:** 与隐藏复杂性的传统前端不同,本系统直接暴露原始的 API 契约。
* **安全验证:** 审查者可以直接检查关键头部(HSTS, CSP)、HttpOnly cookies 以及 JWT payload。
* **集成就绪:** 提供的 OpenAPI 规范允许立即使用任何语言生成客户端。
## 📖 项目概述
这**不仅仅是一个登录表单**。它是一个**加固的安全框架**,旨在缓解 OWASP Top 10 漏洞。它具有使用 JWT 的定制无状态架构、激进的 Redis 支持的速率限制,以及基于地理位置和设备指纹的自适应风险分析。
### **解决的核心问题**
大多数认证系统在负载下失效或屈服于凭证填充。本系统实施了**深度防御**:
1. **第 1 层(网络):** Nginx 和 Redis 速率限制(DDoS 防护)。
2. **第 2 层(身份):** 带有轮换和黑名单机制的无状态 JWT。
3. **第 3 层(行为):** IP 和设备跟踪以检测异常。
## 🏗️ 系统架构
```
graph TD
%% Client Layer
Client((Client/Consumer)) -->|REST/OAuth2| FilterChain[Spring Security Filter Chain]
%% Filter Chain Details
subgraph Filter_Chain [Hardened Security Pipeline]
direction TB
F1[RequestLoggingFilter - MDC/IP Context]
F2[RedisRateLimiterFilter - DDoS Protection]
F3[BlockHttpMethodsFilter - Protocol Hardening]
F4[OAuthRedirectValidationFilter]
F5[JwtAuthenticationFilter - Stateless Auth]
F6[SecurityHeadersFilter - OWASP Compliance]
F1 --> F2 --> F3 --> F4 --> F5 --> F6
end
FilterChain -->|Valid Request| Controllers{API Controllers}
%% Logic Layer
subgraph Controllers_Orchestrators [Business Logic Layer]
Controllers -->|User Flows| AuthOrch[Auth Orchestrators]
Controllers -->|Admin Flows| AdminService[Admin & Analytics Service]
AuthOrch -->|Authn/Authz| Identity[Identity Service]
AuthOrch -->|Security| RiskEngine[Adaptive Risk Engine]
AdminService -->|Governance| Audit[Audit & IP Monitoring]
end
%% Persistence Layer
subgraph Persistence_Layer [Data & Cache Layer]
F2 -.->|Check/Incr| Redis[(Redis)]
Identity -->|Session/Blacklist| Redis
Identity -->|Users/Devices| Postgres[(PostgreSQL)]
RiskEngine -->|Fingerprints| Postgres
Audit -->|forensic Logs| Postgres
end
%% Error Handling
Controllers -.->|Throws| GlobalEx[Global Exception Handler]
FilterChain -.->|Fails| SecurityEx[AuthEntryPoint / AccessDeniedHandler]
GlobalEx & SecurityEx -->|Unified Response| ApiResponse[JSON ApiResponse DTO]
ApiResponse -->|Return| Client
%% Styling
style Filter_Chain fill:#f5f5f5,stroke:#333,stroke-dasharray: 5 5
style Redis fill:#ffcccc,stroke:#b91d1d
style Postgres fill:#d1fae5,stroke:#065f46
style F5 fill:#dbeafe,stroke:#1e40af
style ApiResponse fill:#fef3c7,stroke:#92400e
```
## 🛡️ 关键安全特性
### 🔐 认证与授权
* **无状态 JWT:** 使用 RS256(私钥/公钥对)进行签名。
* **令牌轮换:** 带有重用检测的刷新令牌(防止重放攻击)。
* **RBAC(基于角色的访问控制):** 针对 `USER`、`ADMIN` 和 `SUPER_ADMIN` 的细粒度权限控制。
* **MFA(多因素认证):** 基于时间的一次性密码(TOTP)和基于电子邮件的验证。
### 🚫 威胁缓解
* **速率限制(Redis + Bucket4j):**
* *公共 API:* 100 请求/分钟
* *认证端点:* 5 请求/分钟(暴力破解防护)
* **地理围栏:** 集成 **MaxMind GeoLite2** 以检测不可能的旅行和可疑登录。
* **设备指纹识别:** 跟踪 User-Agent 和 Client Hints 以识别新的/可疑的设备。
### ⚡ 性能工程
* **Redis 缓存:** 用于用户会话和列入黑名单令牌的分布式缓存。
* **异步处理:** 电子邮件发送和审计日志卸载到虚拟线程以防止阻塞。
* **数据库优化:** 针对高频查询(电子邮件、用户名)的索引列。
## 🛠️ 技术栈
| 组件 | 技术 | 描述 |
| :--- | :--- | :--- |
| **语言** | Java 17 | 核心逻辑和并发 |
| **框架** | Spring Boot 3.2 | Web MVC, DI, AOP |
| **安全** | Spring Security 6 | 过滤器链, OAuth2 Resource Server |
| **数据库** | PostgreSQL 15 | 关系数据和 JSONB 支持 |
| **缓存** | Redis | 速率限制桶和令牌黑名单 |
| **验证** | Hibernate Validator | JSR-380 请求 DTO 验证 |
| **部署** | AWS EC2 (Linux) | 生产环境 |
| **代理** | Nginx | 反向代理, SSL 终结, 负载均衡 |
## ⚙️ 本地设置与安装
**前置条件:**
* Java 17+
* PostgreSQL 运行在端口 `5432`
* Redis 运行在端口 `6379`
### 1. 克隆仓库
```
git clone [https://github.com/YOUR_USERNAME/Advanced-Authentication-System.git](https://github.com/YOUR_USERNAME/Advanced-Authentication-System.git)
cd Advanced-Authentication-System
```
### 2. 配置环境
* 使用你的数据库凭据更新 src/main/resources/application.properties:
* spring.datasource.url=jdbc:postgresql://localhost:5432/advanced_auth
* spring.datasource.username=postgres
* spring.datasource.password=your_password
### 3. 构建并运行
* ./mvnw clean install
* ./mvnw spring-boot:run
### 4. 访问应用
* Swagger UI: http://localhost:8080/swagger-ui/index.html
## 👨💻 作者
* 姓名:Prasad Mhaskar
* 职位:后端工程师 | Java & Cloud 专家
* 专注领域:构建可扩展、安全的分布式系统。
* LinkedIn: [https://www.linkedin.com/in/prasad-mhaskar/]
标签:API 安全, CIDR输入, CISA项目, DDoS 防护, IP 监控, Java 17, JWT 轮换, OAuth2, OWASP Top 10, PostgreSQL, Redis, RESTful API, SOC 管理, Spring Boot 3, Spring Security, Streamlit, Swagger, 后端安全, 域名枚举, 审计日志, 密码管理, 提示词优化, 搜索引擎查询, 无状态架构, 测试用例, 编排器模式, 网络安全, 自适应风险引擎, 设备指纹, 访问控制, 防御深度, 隐私保护, 高级认证系统