5D auth / Swagger 實作與驗收紀錄

返回文件索引

本文件記錄第五階段 5D auth / Swagger 第一批程式實作、測試、停止線、提交、推送與 Actions 驗收。5D 僅完成 WebApi 邊界的最小 API key gate、protected controller policy、development-only Swagger 與測試;沒有導入 JWT / OAuth / OIDC / 外部 IdP,沒有保存正式 secret,沒有變更既有 API route,也沒有修改 DB、Windows Service、外部 DLL 或 Adapter contract。

0. 基本資訊

驗收日期2026-06-07
對應節點第五階段 5D auth / Swagger
程式 repo / branchhs-device-control-template / poc/nmodbus-tcp
程式基準 commit354fecd
程式 commitc92342b
Commit 訊息新增 5D WebApi auth 與 Swagger gate
GitHub Actions27094590136 success
文件狀態第一批實作與提交、推送與 Actions 驗收紀錄已建立

1. 程式修改範圍

類別檔案
Auth options / policy / handlersrc/HS.DeviceControl.WebApi/Security/*
Startupsrc/HS.DeviceControl.WebApi/Startup.cs
Controller protectionTasksController.csDevicesController.csSchemaController.cs
Health boundaryHealthController.cs
Swagger packageHS.DeviceControl.WebApi.csproj
WebApi testsWebApiTestHost.csWebApiSecurityTests.csSwaggerGateTests.cs

2. 實作內容

項目結果
API key options新增 WebApiAuthOptions,預設啟用驗證,正式 key 必須由外部設定注入。
Authentication handler新增最小 API key handler,缺少或錯誤 key 回 401,不回顯 credential。
Authorization policy新增 WebApiProtectedEndpoint,集中保護 Tasks、Devices、Schema controller。
Health endpointHealthController 明確標記 AllowAnonymous
Swagger新增 Swashbuckle 5.6.3,僅在 Development pipeline 啟用 Swagger JSON / UI。
Route未修改既有 route;授權只套在 WebApi 邊界。

3. 測試與驗收結果

驗證項目結果
WebApi.Tests17 passed / 0 failed / 0 skipped
Application.Tests67 passed / 0 failed / 0 skipped
Solution tests536 passed / 0 failed / 0 skipped
Auth gate未帶 API key 回 401,錯誤 API key 回 401,正確測試 key 可進入既有 Application result。
Health gate未帶 API key 呼叫 /health 回 200。
Swagger gateDevelopment 可取得 /swagger/v1/swagger.jsonProduction 回 404。
停止線掃描未命中 DB DDL、Windows Service、外部 DLL loading、JWT / OAuth / OIDC / Bearer、password / secret。
污染字串掃描程式 repo AGENTS.mdREADME.mddocs 指定文字檔範圍未命中八項污染字串。
程式 repo commit / pushc92342b 已推送至 poc/nmodbus-tcp
GitHub Actions27094590136 completed success。

備註:solution 測試仍有既有 .NET 5.0 EOL warning,與本次 5D 修改無關。

4. 停止線確認

5. 驗收結論

5D auth / Swagger 第一批實作已在核准範圍內完成,並通過 WebApi、Application、solution 測試與 GitHub Actions。下一步可同步文件 repo stage / commit / push,並在文件網站部署成功後進入 5E Windows Service 最小實作前確認與實作。