付録0 環境構築と runnable minimum
この付録は、各実装章の runnable minimum を安全に確認するための入口です。 本書のコード例は設計・レビュー観点を説明するための抜粋を含むため、読者は自分の検証用アプリケーションまたはローカルモックに置き換えて確認してください。
0.1 原則
- 本番ユーザー、本番 client secret、本番 IdP の管理者権限を使わない。
- 検証用 tenant、検証用 client、短寿命のダミー鍵、ローカル callback URL を使う。
- 正常系だけでなく、拒否されるべき入力を必ず 1 件以上確認する。
- 実行結果は、コマンド、HTTP status、ログ、スクリーンショットのいずれかで残す。
0.2 最小ツール
| 用途 | 最小要件 | 確認コマンド例 |
|---|---|---|
| Node.js 実装確認 | Node.js 20 以上 | node --version && npm --version |
| HTTP 確認 | curl またはブラウザ開発者ツール |
curl --version |
| JSON 確認 | jq または同等ツール |
jq --version |
| コンテナ検証 | Docker / Podman のいずれか | docker --version または podman --version |
0.3 ローカル環境変数の雛形
次の値は例です。本番値を貼り付けず、ローカル専用の値へ置き換えてください。
cat > .env.local <<'ENV'
AUTH_BASE_URL=http://localhost:3000
SESSION_COOKIE_NAME=__Host-dev-session
SESSION_SECRET=replace-with-local-random-value
OIDC_ISSUER=http://localhost:8080/realms/dev
OIDC_CLIENT_ID=local-dev-client
OIDC_CLIENT_SECRET=local-dev-only
TOKEN_AUDIENCE=local-api
ENV
0.4 runnable minimum 証跡テンプレート
各章で最小確認を行ったら、次の形式で PR または学習メモに残してください。
対象章:
確認日:
入力:
起動条件:
期待結果:
実結果:
失敗系の確認:
未確認事項:
本番投入しない値:
0.5 章別の入口
- 第4章: セッション Cookie の属性、期限、失効、改ざん拒否を確認する。
- 第5章: JWT / token の issuer、audience、期限、署名鍵不一致を確認する。
- 第6章: OAuth 2.0 の state、redirect URI、PKCE、認可コード再利用拒否を確認する。
- 第7章: OIDC / SAML metadata、issuer、audience、署名鍵、callback の一致を確認する。
- 第8章: 方式選定表、境界図、保管場所、監査ログ方針を確認する。
- 第9章: 外部リクエストと内部呼び出しの認証責務を分けて確認する。
- 第10章: 401 / 403 / 成功 / credential 期限切れの 4 ケースを確認する。