# open-auth **Repository Path**: shmilyhe/open-auth ## Basic Information - **Project Name**: open-auth - **Description**: 基于Spring Boot实现的OpenID Connect认证服务,支持JWT令牌和动态JWKS。可以作为 apisix 的集中验证中心。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-07-09 - **Last Updated**: 2025-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenAuth 认证服务 基于Spring Boot实现的OAuth2/OpenID Connect认证服务,支持JWT令牌和动态JWKS。 ## 功能特性 - ✅ OpenID Connect Discovery 端点 - `/.well-known/openid-configuration` - ✅ JWKS 端点 - `/api/auth/jwks` - ✅ 支持多种签名算法 - RSA (RS256/RS384/RS512) - ECC (ES256/ES384/ES512) - ✅ 动态密钥轮换 - ✅ 自定义JWT Claims - ✅ 用户认证服务 ## 快速开始 ### 1. 配置参数 在`application.properties`中配置: ```properties # JWT配置 jwt.issuer=http://localhost:8081 jwt.expiration=3600 jwt.key.algorithm=RS256 jwt.key.rotation.hours=24 # 服务端口 server.port=8081 ``` ### 2. 启动服务 ```bash mvn spring-boot:run ``` ### 3. 接口说明 #### 登录认证 ```bash POST /api/auth/login Content-Type: application/json { "username": "admin", "password": "adminpass" } ``` 响应示例: ```json { "success": true, "token": "eyJhbGciOiJSUzI1NiIs...", "message": "Login successful" } ``` #### OpenID 配置发现 ```bash GET /.well-known/openid-configuration ``` #### JWKS 端点 ```bash GET /api/auth/jwks ``` ## 开发指南 ### 密钥管理 - 默认使用RSA算法 - 支持通过配置切换ECC算法 - 自动密钥轮换(默认24小时) ### 自定义Claims 在`UserService.authenticate()`方法中返回自定义claims,这些claims会被包含在JWT中。 ### 部署说明 1. 打包应用: ```bash mvn clean package ``` 2. 运行: ```bash java -jar target/open-auth-0.0.1-SNAPSHOT.jar ```