oauth-implementation について
OAuth 2.0 と OpenID Connect 認証を実装するためのセキュリティ開発スキルです。JWT、リフレッシュトークン、セッション管理を扱い、Node.js、Python、Java の実装ガイドを含みます。
主な機能
- 01OAuth 2.0 認証フロー
- 02OpenID Connect の実装
- 03JWT とリフレッシュトークンの処理
- 04安全なセッション管理
- 05Node.js、Python、Java のガイド
活用シーン
- 01ユーザー認証システムの構築
- 02サードパーティ API の統合
- 03シングルサインオンの実装
- 04モバイルアプリ認証の保護
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill oauth-implementationインストール後、Claude Code で/oauth-implementationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/java-spring-security-oauth.mdnodejs-oauth-20-server.mdpython-openid-connect-implementation.mdscripts/security-checklist.sh詳細
OAuth の実装
目次
概要
JWT トークン、リフレッシュトークン、安全なセッション管理を使用して、業界標準の OAuth 2.0 および OpenID Connect の認証フローを実装します。
使用する場面
- ユーザー認証システム
- サードパーティ API の統合
- シングルサインオン(SSO)の実装
- モバイルアプリの認証
- マイクロサービスのセキュリティ
- ソーシャルログインの統合
クイックスタート
最小限の動作例:
// oauth-server.js - Complete OAuth 2.0 implementation
const express = require("express");
const jwt = require("jsonwebtoken");
const crypto = require("crypto");
const bcrypt = require("bcrypt");
class OAuthServer {
constructor() {
this.app = express();
this.clients = new Map();
this.authorizationCodes = new Map();
this.refreshTokens = new Map();
this.accessTokens = new Map();
// JWT signing keys
this.privateKey = process.env.JWT_PRIVATE_KEY;
this.publicKey = process.env.JWT_PUBLIC_KEY;
this.setupRoutes();
}
// Register OAuth client
registerClient(clientId, clientSecret, redirectUris) {
this.clients.set(clientId, {
clientSecret: bcrypt.hashSync(clientSecret, 10),
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装例は references/ ディレクトリにあります。
| ガイド | 内容 |
|---|---|
| Node.js OAuth 2.0 サーバー | Node.js OAuth 2.0 サーバー |
| Python OpenID Connect の実装 | Python OpenID Connect の実装 |
| Java Spring Security OAuth | Java Spring Security OAuth |
ベストプラクティス
✅ 推奨事項
- パブリッククライアントでは PKCE を使用します
- トークンローテーションを実装します
- トークンを安全に保存します
- 常に HTTPS を使用します
- リダイレクト URI を検証します
- レート制限を実装します
- 有効期間の短いアクセストークンを使用します
- 認証イベントをログに記録します
❌ 禁止事項
- トークンを localStorage に保存しないでください
- インプリシットフローを使用しないでください
- state パラメーターを省略しないでください
- クライアントシークレットを公開しないでください
- オープンリダイレクトを許可しないでください
- 脆弱な署名鍵を使用しないでください
コメント
Markdown 対応