# dawning
**Repository Path**: aluneth_wang/dawning
## Basic Information
- **Project Name**: dawning
- **Description**: .net core + ddd + dapper.net + identityserver4
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-12-29
- **Last Updated**: 2026-08-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Dawning Identity Gateway








**企业级统一身份认证与 API 网关管理平台**
中文 | [English](README.md)
---
## 📖 项目简介
Dawning Identity Gateway 是一个基于 .NET 8 和 Vue 3 构建的现代化身份认证与 API 网关管理系统。采用领域驱动设计(DDD)架构,集成 OpenIddict 实现 OAuth 2.0/OpenID Connect 标准认证流程,为企业提供统一的身份认证中心和 API 网关服务。
## ✨ 核心特性
- 🔐 **OAuth 2.0 / OIDC** - 完整的 OpenIddict 集成,支持多种授权流程
- 👥 **用户管理** - 用户 CRUD、角色分配、状态管理、系统用户保护
- 🛡️ **RBAC 权限** - 基于角色的访问控制,细粒度权限管理
- 🔒 **安全策略** - 密码策略、登录锁定、审计日志
- 📊 **管理后台** - 基于 Arco Design Pro Vue 的现代化管理界面
- 🚀 **高性能** - Dapper ORM,优化的查询构建器
- 🌐 **API 网关** - 基于 YARP 的反向代理,动态路由管理
- 🔗 **多系统接入** - 为其他业务系统提供统一认证服务
- 🐳 **容器化部署** - Docker Compose 一键部署,Helm Chart 支持 K8s
## 🏗️ 技术栈
### 后端 (Dawning.Gateway)
| 技术 | 说明 |
|------|------|
| .NET 8 | 运行时框架 |
| ASP.NET Core | Web API 框架 |
| OpenIddict | OAuth 2.0 / OIDC 服务器 |
| Dapper | 轻量级 ORM |
| MySQL | 数据库 |
| AutoMapper | 对象映射 |
| xUnit + Moq | 单元测试 |
### 前端 (dawning-admin)
| 技术 | 说明 |
|------|------|
| Vue 3 | 前端框架 |
| TypeScript | 类型安全 |
| Arco Design | UI 组件库 |
| Pinia | 状态管理 |
| Vue Router | 路由管理 |
| Vite | 构建工具 |
## 📁 项目结构
```
dawning/
├── apps/
│ ├── admin/ # Vue 3 前端管理系统
│ │ ├── src/
│ │ │ ├── api/ # API 接口
│ │ │ ├── views/ # 页面视图
│ │ │ ├── store/ # 状态管理
│ │ │ └── router/ # 路由配置
│ │ └── config/ # 构建配置
│ └── gateway/ # .NET 8 后端服务
│ ├── src/
│ │ ├── Dawning.Gateway.Api/ # API 网关 (YARP)
│ │ ├── Dawning.Identity.Api/ # 身份认证 API
│ │ ├── Dawning.Identity.Application/ # 应用层
│ │ ├── Dawning.Identity.Domain/ # 领域层
│ │ └── Dawning.Identity.Domain.Core/ # 领域核心
│ └── docs/ # API 文档
├── sdk/ # Dawning SDK 组件
├── deploy/
│ ├── docker/ # Docker Compose 配置
│ │ └── dawning/
│ │ ├── Chart.yaml
│ │ ├── values.yaml # 默认配置
│ │ ├── values-dev.yaml # 开发环境
│ │ └── values-prod.yaml # 生产环境
│ └── scripts/ # 部署脚本
├── docs/ # 项目文档
└── .github/workflows/ # CI/CD 配置
```
## 🚀 快速开始
### 环境要求
- .NET 8.0 SDK
- Node.js 18+
- MySQL 8.0+
- pnpm (推荐) 或 npm
- Docker & Docker Compose (可选)
### 方式一:Docker Compose 一键启动(推荐)
```bash
cd deploy/docker
# 复制环境配置
cp .env.example .env
# 启动基础设施
docker compose up -d mysql redis zookeeper kafka
# 启动所有服务
docker compose --profile all up -d --build
```
这将启动:MySQL、Redis、Zookeeper、Kafka、Kafka UI 和后端服务。
### 方式二:手动启动
**后端启动**
```bash
# 1. 进入后端目录
cd apps/gateway
# 2. 还原依赖
dotnet restore
# 3. 配置数据库连接 (修改 appsettings.json)
# 4. 运行数据库迁移
mysql -u -p < docs/sql/migrations/001_initial_schema.sql
# 5. 启动 Identity API
cd src/Dawning.Identity.Api
dotnet run
```
**前端启动**
```bash
# 1. 进入前端目录
cd apps/admin
# 2. 安装依赖
pnpm install
# 3. 启动开发服务器
pnpm dev
```
### 默认账户
| 用户名 | 密码 | 角色 |
|--------|------|------|
| admin | Admin@123 | 系统管理员 |
## 🐳 Docker 部署
```bash
cd deploy/docker
# 复制环境配置
cp .env.example .env
# 启动基础设施
docker compose up -d mysql redis zookeeper kafka
# 启动所有服务
docker compose --profile all up -d --build
# 停止服务
docker compose down
# 清理数据
docker compose down -v
```
## �🔗 业务系统接入
其他业务系统可以通过 Dawning SDK 轻松接入统一认证:
**1. 添加 NuGet 包**
```xml
```
**2. 配置认证**
```csharp
builder.Services.AddDawningAuthentication(builder.Configuration);
app.UseAuthentication();
app.UseAuthorization();
```
**3. 使用认证**
```csharp
[Authorize]
[HttpGet]
public IActionResult GetData() => Ok();
```
详见 [认证接入指南](docs/AUTHENTICATION_INTEGRATION.zh-CN.md)。
## 🧪 测试
```bash
# 运行单元测试
cd apps/gateway
dotnet test
# 测试覆盖: 52 个测试用例
# - UserServiceTests: 8 tests
# - RoleServiceTests: 11 tests
# - PermissionServiceTests: 9 tests
# - LoginLockoutServiceTests: 9 tests
# - PasswordPolicyServiceTests: 13 tests
```
## 📚 API 文档
启动后端后访问 Swagger UI:
- Identity API: `http://localhost:5202/swagger`
- Gateway API: `http://localhost:5000/swagger`
## 📖 文档导航
| 文档 | 说明 |
|------|------|
| [认证接入指南](docs/AUTHENTICATION_INTEGRATION.zh-CN.md) | 业务系统接入统一认证 |
| [Identity API](apps/gateway/docs/IDENTITY_API.zh-CN.md) | OAuth2/OIDC 端点说明 |
| [开发者指南](docs/DEVELOPER_GUIDE.zh-CN.md) | 开发规范与约定 |
| [部署文档](docs/DEPLOYMENT.zh-CN.md) | 生产环境部署 |
| [用户指南](docs/USER_GUIDE.zh-CN.md) | 管理后台使用说明 |
## 🔧 配置说明
主要配置文件:`appsettings.json`
```json
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=dawning_identity;..."
},
"Security": {
"Password": {
"MinLength": 8,
"RequireUppercase": true,
"RequireDigit": true
},
"Lockout": {
"Enabled": true,
"MaxFailedAttempts": 5,
"LockoutDurationMinutes": 30
}
}
}
```
## 📄 许可证
本项目采用 [MIT 许可证](LICENSE)。
## 🤝 贡献
欢迎提交 Issue 和 Pull Request!