# 外部集成 **分析日期:** 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 集成 ## 身份认证与授权 **OpenIddict(OAuth2/OIDC):** - 实现标准的 OAuth2 授权服务器功能 - 支持的授权类型:password(密码模式) - JWT Token 发行 - 令牌配置: - Issuer(签发者):`http://localhost:5132`(开发环境) - Audience(受众):`fengling-api` - JWT Secret(开发环境):`FenglingAuthSecretKey2024!ChangeThisInProduction!` **默认用户:** - **管理员:** 用户名 `admin`,密码 `Admin@123`,角色 `Admin` - **测试用户:** 用户名 `testuser`,密码 `Test@123`,角色 `User` ## 可观测性 **OpenTelemetry(OTLP 导出):** - 导出协议:OpenTelemetry Protocol (OTLP) - 导出目标:未在配置中明确指定(需配置 OTLP 端点) - Instrumentation: - ASP.NET Core 请求追踪 - HTTP 客户端追踪 - OpenIddict 服务器追踪 ## 容器与部署 **Docker:** - 镜像仓库:`gitea.shtao1.cn`(Gitea 私有仓库) - 镜像名称:`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 Secret:`fengling-auth-secrets` - 存储内容: - `connection-string` - 数据库连接字符串 - 镜像拉取凭据:Kubernetes ImagePullSecret --- *外部集成审计:2026-02-28*