Agent skill
oauth2-flows
OAuth 2.0認可フローの実装パターンとセキュリティベストプラクティス。 Authorization Code Flow、PKCE、Refresh Token Flowの正確な実装を提供。 Web/SPA/モバイルアプリでの安全な認可フロー実装を支援。 Anchors: • OAuth 2.0 Simplified (Aaron Parecki) / 適用: 認可フロー全般 / 目的: RFC準拠の正確な実装 • Web Application Security (Andrew Hoffman) / 適用: セキュリティ設計 / 目的: 脅威モデリングと対策 • RFC 6749 (OAuth 2.0 Framework) / 適用: プロトコル仕様 / 目的: 標準準拠の担保 Trigger: Use when implementing OAuth 2.0 authentication, configuring authorization flows, integrating with OAuth providers, implementing PKCE for SPAs, or managing token lifecycle. oauth2, authorization code, pkce, access token, refresh token, oauth provider, google auth, github oauth
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/security/oauth2-flows
SKILL.md
OAuth 2.0 Flows Implementation
概要
OAuth 2.0認可フローの実装パターンとセキュリティベストプラクティスを提供。 Authorization Code Flow、PKCE、Refresh Token Flowの正確な実装を支援する。
ワークフロー
Phase 1: フロー選定
目的: アプリケーション特性に基づき適切な認可フローを選定
アクション:
- クライアントタイプを特定(サーバーサイド/SPA/モバイル/CLI)
- 適切なフローを選定
- セキュリティ要件を確認
Task: agents/select-flow.md を参照
Phase 2: 実装
目的: 選定したフローを実装
アクション:
- OAuth プロバイダー設定
- 認可エンドポイント実装
- トークン交換実装
- エラーハンドリング実装
Task: agents/implement-flow.md を参照
Phase 3: セキュリティ検証
目的: セキュリティベストプラクティスへの準拠を確認
アクション:
scripts/validate-oauth-config.mjsで設定検証references/security-checklist.mdでチェック- トークンストレージ戦略の確認
Task仕様(ナビゲーション)
| Task | 起動タイミング | 入力 | 出力 |
|---|---|---|---|
| select-flow | Phase 1開始時 | アプリケーション要件 | フロー選定結果 |
| implement-flow | Phase 2開始時 | フロー選定結果 | 実装コード |
詳細仕様: 各Taskの詳細は agents/ ディレクトリの対応ファイルを参照
フロー選定ガイド
| クライアントタイプ | 推奨フロー | 理由 |
|---|---|---|
| サーバーサイドWeb | Authorization Code | シークレット保護可能 |
| SPA (ブラウザ) | Authorization Code + PKCE | シークレット保護不可 |
| モバイルアプリ | Authorization Code + PKCE | シークレット保護不可 |
| CLI / デスクトップ | Device Authorization | ブラウザ連携が複雑 |
| 信頼されたファーストパーティ | Resource Owner Password | 非推奨・限定使用 |
ベストプラクティス
すべきこと
- 常に
stateパラメータを使用(CSRF対策) - SPAとモバイルではPKCEを必須使用
- トークンは安全なストレージに保存
- Refresh Tokenは必要最小限のスコープで取得
- HTTPSを必須使用
redirect_uriを厳密に検証
避けるべきこと
- Implicit Flow の使用(非推奨)
- トークンのURLパラメータ露出
- ワイルドカード
redirect_uri - 過度に広いスコープ要求
- トークンのlocalStorage保存(XSS脆弱性)
リソース参照
references/(詳細知識)
| リソース | パス | 用途 |
|---|---|---|
| 基礎知識 | See references/basics.md | OAuth 2.0基本概念 |
| Authorization Code | See references/authorization-code-flow.md | 認可コードフロー詳細 |
| PKCE実装 | See references/pkce-implementation.md | PKCE実装詳細 |
| セキュリティ | See references/security-checklist.md | セキュリティチェック |
| トークンストレージ | See references/token-storage-strategies.md | ストレージ戦略 |
scripts/(決定論的処理)
| スクリプト | 用途 | 使用例 |
|---|---|---|
validate-oauth-config.mjs |
設定検証 | node scripts/validate-oauth-config.mjs <config> |
log_usage.mjs |
フィードバック記録 | node scripts/log_usage.mjs --result success |
assets/(テンプレート)
| テンプレート | 用途 |
|---|---|
auth-code-flow-template.ts |
サーバーサイドOAuth認可コードフロー実装 |
pkce-implementation-template.ts |
SPA/モバイル向けPKCE実装 |
変更履歴
| Version | Date | Changes |
|---|---|---|
| 2.0.0 | 2026-01-02 | 18-skills.md仕様に完全準拠 |
| 1.0.0 | 2025-12-24 | 初期バージョン |
Didn't find tool you were looking for?