fengling-auth-service/.planning/codebase/INTEGRATIONS.md
movingsam 2a60caae80 docs(architecture): 添加系统架构分析文档
- 描述整体基于ASP.NET Core的分层架构与领域驱动设计
- 详细说明表现层、视图模型层、配置层和基础设施层职责
- 介绍用户认证、OAuth2授权码与令牌颁发的数据流过程
- 抽象说明用户与租户、声明和授权实体设计
- 说明应用启动入口和关键HTTP端点
- 列出错误处理策略和跨领域关注点(日志、追踪、安全)

docs(concerns): 新增代码库问题与关注点分析文档

- 汇总并详述安全漏洞如配置文件泄露、Cookie策略不当
- 记录技术债务包括缺乏单元测试、依赖注入不统一等
- 罗列性能问题和具体代码缺陷
- 给出优先级明确的修复建议和改进措施
- 涵盖架构设计问题和依赖兼容性风险
- 说明测试覆盖缺口及高风险未测试区域

docs(conventions): 新增编码约定与规范文档

- 明确文件、类、方法、变量等命名规则
- 规范代码风格包括命名空间、主构造函数使用
- 制定日志记录、审计日志和依赖注入的标准
- 规定控制器路由、异步模式和错误处理方式
- 说明DTO命名及特性使用规范
- 描述配置管理、注释规范及常用代码注释样例

docs(integrations): 添加外部系统集成文档

- 介绍数据库连接和PostgreSQL客户端库版本
- 描述身份认证与授权服务及默认用户信息
- 说明可观测性方案及OpenTelemetry组件
- 涵盖容器化部署相关Docker与Kubernetes配置
- 说明CI/CD流水线触发条件与构建流程
- 列出环境变量需求和主要API端点
- 强调生产环境密钥管理与安全存储机制
2026-03-01 11:28:44 +08:00

3.4 KiB
Raw Blame History

外部集成

分析日期: 2026-02-28

数据库

PostgreSQL

  • 类型: 关系型数据库
  • 连接信息:
    • 主机81.68.223.70
    • 端口15432
    • 数据库fengling_auth
    • 用户名movingsam
  • 客户端库: Npgsql.EntityFrameworkCore.PostgreSQL 10.0.3
  • 连接字符串来源: appsettings.json 或环境变量 ConnectionStrings__DefaultConnection
  • 健康检查: 通过 AspNetCore.HealthChecks.Npgsql 集成

身份认证与授权

OpenIddictOAuth2/OIDC

  • 实现标准的 OAuth2 授权服务器功能
  • 支持的授权类型password密码模式
  • JWT Token 发行
  • 令牌配置:
    • Issuer签发者http://localhost:5132(开发环境)
    • Audience受众fengling-api
  • JWT Secret开发环境FenglingAuthSecretKey2024!ChangeThisInProduction!

默认用户:

  • 管理员: 用户名 admin,密码 Admin@123,角色 Admin
  • 测试用户: 用户名 testuser,密码 Test@123,角色 User

可观测性

OpenTelemetryOTLP 导出):

  • 导出协议OpenTelemetry Protocol (OTLP)
  • 导出目标:未在配置中明确指定(需配置 OTLP 端点)
  • Instrumentation
    • ASP.NET Core 请求追踪
    • HTTP 客户端追踪
    • OpenIddict 服务器追踪

容器与部署

Docker

  • 镜像仓库:gitea.shtao1.cnGitea 私有仓库)
  • 镜像名称:fengling/fengling-auth-service:latest
  • Dockerfile多阶段构建build + publish

Kubernetes

  • 命名空间:fengling
  • 副本数2
  • 服务端口80
  • 资源配置:
    • 请求CPU 100m内存 256Mi
    • 限制CPU 500m内存 512Mi
  • 健康检查:
    • 就绪探针:/health初始延迟 10 秒,周期 10 秒
    • 存活探针:/health初始延迟 30 秒,周期 30 秒

CI/CD

Gitea Actions

  • 触发条件:
    • 推送至 main 或 master 分支
    • 合并至 main 或 master 分支的 Pull Request
  • .NET 版本10.0
  • 阶段:
    1. 构建Build
    2. Docker 镜像构建与推送
    3. 部署至 Kubernetes

NuGet 源:

  • 私有源:https://gitea.shtao1.cn/api/packages/fengling/nuget/index.json
  • 公共源:https://api.nuget.org/v3/index.json
  • 认证方式:用户名 + 访问令牌

环境变量

必需的环境变量:

  • ConnectionStrings__DefaultConnection - 数据库连接字符串(从 Kubernetes Secret 注入)
  • OpenIddict__Issuer - Token 签发者 URL生产环境https://auth.fengling.local
  • OpenIddict__Audience - Token 受众
  • ASPNETCORE_ENVIRONMENT - 运行环境(如 Production
  • ASPNETCORE_URLS - 监听 URL默认http://+:80

可选变量:

  • Testing - 是否为测试模式(启用/禁用 Swagger

API 端点

主要端点:

  • /connect/token - 获取 OAuth2 令牌(密码模式)
  • /health - 健康检查端点
  • /swagger/v1/swagger.json - OpenAPI 文档

管理端点(需认证):

  • /api/users - 用户管理
  • /api/roles - 角色管理
  • /api/tenants - 租户管理
  • /api/oauth/clients - OAuth 客户端管理
  • /api/audit/logs - 审计日志
  • /api/access/logs - 访问日志

密钥管理

生产环境密钥存储:

  • Kubernetes Secretfengling-auth-secrets
  • 存储内容:
    • connection-string - 数据库连接字符串
  • 镜像拉取凭据Kubernetes ImagePullSecret

外部集成审计2026-02-28