暂无描述

liuq 8109dacfdb 数据还原 3 月之前
backend 8109dacfdb 数据还原 3 月之前
frontend 8109dacfdb 数据还原 3 月之前
.dockerignore 2640b96534 数据备份 3 月之前
.gitignore 2640b96534 数据备份 3 月之前
README.md a9b718c69b 第一次更新 3 月之前
SMSapi.md 50de7cd602 真实短信服务 3 月之前
Simple_Auth_Guide.md 50de7cd602 真实短信服务 3 月之前
docker-compose.yml 762a105557 服务优化 3 月之前
需求功能概述.md 05316e78bb 新增access_token 3 月之前

README.md

Unified Authentication Platform (UAP)

统一认证平台 (Unified Authentication Platform) 是一个集成了 OIDC 标准协议简易 API 认证 的身份管理系统。支持多应用接入、账号映射、手机号一键登录以及老旧系统平滑集成。

🌟 核心功能

  • 多协议支持: 同时支持 OIDC (Authorization Code Flow) 和简易 Ticket 认证,满足新老系统需求。
  • 账号映射: 支持将统一平台的手机号映射为下游业务系统的账号 (User ID / Username) 和邮箱,解决账号体系不通的问题。
  • 统一管理: 完整的后台管理界面,支持应用创建、密钥管理、映射导入导出 (Excel)。
  • 安全可靠:
    • 简易模式采用 HMAC-SHA256 签名机制。
    • OIDC 模式基于经过实战检验的 Ory Hydra。
  • Webhook 通知: 用户资料变更实时推送到下游业务系统。

🚀 快速启动 (Docker Compose)

本项目已完全容器化,只需一条命令即可启动所有服务(前端、后端、数据库、Redis、OIDC 服务)。

前置条件

启动命令

在项目根目录下运行:

docker-compose up -d --build

系统初始化可能需要 1-2 分钟(尤其是 MySQL 和 Hydra 首次运行)。 后端服务会自动等待数据库就绪后才启动。

访问地址

服务 地址 说明
前端页面 http://localhost:5173 统一管理后台 & 登录页 (开发环境端口)
后端 API http://localhost:8000/docs Swagger UI 接口文档
Ory Hydra http://localhost:4444 OIDC 公共端点 (Authorize/Token)
MySQL localhost:3308 用户名: uap_user / 密码: uap_pass

注意:如果使用 Nginx 部署,前端访问地址通常为 http://localhost (80端口)。


📖 接入指南

详细的接入文档请登录控制台查看 "使用帮助" 页面。

1. 注册与登录

  1. 打开浏览器访问前端页面。
  2. 首次使用请点击登录页的 "立即注册" 或通过 API 创建管理员账号。
  3. 默认管理员账号 (如果通过脚本初始化): 13800000001 / admin

2. OIDC 标准协议 (推荐)

适用于现代 Web 应用。

  • Issuer: http://localhost:4444
  • Scopes: openid, offline, profile
  • 用户信息: ID Token 中包含 phone_number, preferred_username (映射账号), email (映射邮箱)。

3. 简易 API (Ticket)

适用于老旧系统或需要纯后端集成的场景。

  • 流程: 用户在平台登录 -> 重定向带 Ticket -> 业务后端验证 Ticket。
  • 验证接口: POST /api/v1/simple/validate
  • 签名算法: HMAC-SHA256

4. 统一登录接口 (Direct API)

允许第三方系统自行构建登录页面。

  • 接口: POST /api/v1/simple/login
  • 参数: app_id, identifier (手机/账号/邮箱), password
  • 返回: ticket (后续流程同 Ticket 模式)

5. 账号映射

支持 Excel 批量导入。

  • 列头支持: 手机号, 映射账号, 映射邮箱
  • Excel 模板: 可在管理后台直接下载。

🛠 开发环境

  • Backend: FastAPI, SQLAlchemy, Uvicorn
  • Frontend: Vue 3, TypeScript, Element Plus, Vite
  • Auth Engine: Ory Hydra (OIDC Provider)
  • Database: MySQL 8.0, Redis

如有代码变更,请重新构建:

docker-compose up -d --build