kuju63 / kuju63/code-review-agents

認可境界を定義し、設定および command ルートを保護する

Open
#451 0 comments 0 reactions 1 assignee Claimed by @kuju63 View on GitHub
Dominant language
HTML
Stars
0
Forks
0
Avg merge
1d 7h
Merged PRs (30d)
96

Description

## 概要

Web API の認可境界を定義し、認可が必要なルートを一貫して保護する。

現状、`PUT /settings/github` を含む command ルートは無認可である。GitHub ホストは `GITHUB_ALLOWED_HOST` に固定済みであるため、既存 PAT の任意ホストへの送信は防止される。しかし、未認証の利用者は GitHub 設定の PAT を更新または置換できる。

## 必要な変更

- API 全体の認証および認可モデルを決定する。
- 認可が必要なルートを定義する。
- `PUT /settings/github` を含む設定更新ルートを認可で保護する。
- `POST /reviews` などの command ルートについても、同じ認可境界に従う。
- OpenAPI の `security` 定義、`servers` の運用前提、実装、およびテストを更新する。
- 認可失敗時の応答コードとエラー形式を API 契約として定義する。

## 対象領域

- `packages/web-api/src/app.ts`
- `packages/web-api/src/index.ts`
- `packages/web-api/src/modules/settings/settings.route.ts`
- `packages/web-api/src/modules/reviews/`
- `docs/openapi/reviews.yaml`

## 背景

`GITHUB_ALLOWED_HOST` と `updateGithubSettings()` のホストおよびルートパス検証は、PAT の送信先をオペレーター指定ホストに制限する。この対策は認可の代替ではない。設定変更および command 実行の権限を、アプリケーション全体で一貫して制御する必要がある。

## 受け入れ基準

- 認可境界と対象ルートが設計文書または ADR に明記される。
- 認可が必要な各ルートは、未認証または未認可の要求を拒否する。
- GitHub 設定の PAT を未認証の利用者が更新または置換できない。
- OpenAPI 契約が実装と一致する。
- 正常系、未認証、未認可の契約テストを追加する。

## 参照

- 起票依頼者: @kuju63
- PR: https://github.com/kuju63/code-review-agents/pull/448
- レビューコメント: https://github.com/kuju63/code-review-agents/pull/448#discussion_r3997531626

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.