AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って、数分で Auth0 API 認証を自動的に追加できます。インストール:次に、AI アシスタントに以下のように依頼します。AI アシスタントが、Auth0 API の作成、認証情報の取得、
@auth0/auth0-fastify-api のインストール、プラグインの設定、JWT の検証による API エンドポイントの保護を自動的に行います。agent skills の完全なドキュメント →はじめに
Auth0 API を設定する
次に、Auth0 テナントに新しい API を作成し、環境変数をプロジェクトに追加する必要があります。Auth0 API を設定する方法は 2 つあります。CLI コマンドを使用するか、Dashboard から手動で設定できます。
- CLI
- Dashboard
Auth0 API を作成するには、プロジェクトのルートディレクトリで次のコマンドを実行します。作成後、Identifier と Domain の値をコピーし、
.env ファイルを作成します。.env
このコマンドでは、次の処理が行われます。
- 認証済みかどうかを確認し、必要に応じてログインを求める
- 指定した Identifier で Auth0 API を作成する
- ドメインと Identifier を含む API の詳細を表示する
Auth0 APIプラグインを設定する
Fastify サーバーを作成し、Auth0 API プラグインを登録します。これで行われること:
server.js
- Auth0 API プラグインを Auth0 のドメインと API のオーディエンスで登録します
- 受信リクエストに対する JWT 検証を設定します
- ルートを保護するための
requireAuth()preHandler を利用できるようにします
API ルートを作成
server.js にパブリックルートと保護されたルートを追加します。server.js
- パブリックルートでは認証は不要です
- 保護されたルートでは、有効な JWT を必須にするため、
preHandler: fastify.requireAuth()を使用します request.userには、認証済みリクエストのデコードされた JWT クレームが格納されますsubクレームには、ユーザーの一意の識別子が格納されます
API を起動する
開発サーバーを起動します:API は http://localhost:3001 で実行中です。
Node.js 20 以降では、
--watch フラグによりファイルの変更時にサーバーが自動的に再起動されます。チェックポイントこれで、保護されたAPIができているはずです。API は次のように動作します。
- 認証なしでパブリックエンドポイントへのリクエストを受け付ける
- 有効なトークンなしで保護されたエンドポイントへのリクエストを拒否する
- JWT トークンを Auth0 のドメインと対象者に対して検証する
- トークンのクレームから、
request.userを通じてユーザー情報を提供する
高度な使い方
TypeScript でのカスタムトークンクレーム
TypeScript でのカスタムトークンクレーム
Token インターフェースを拡張して、アクセストークン内のカスタムクレームの型安全性を確保します。これで、TypeScript がカスタムクレームを認識するようになります。
server.ts
server.ts
カスタムクレームでは、標準のOIDCクレームでない限り、名前空間付き URL (例:
https://myapp.com/roles) を使用する必要があります。カスタムクレームの詳細はこちら。権限ベースの認可
権限ベースの認可
ロールベースの認可
ロールベースの認可
カスタムクレームを使用して、ロールベースのアクセス制御を実装します。
server.js
ロールは Auth0 Actions を使用してトークンに追加する必要があります。トークンにロールを追加する方法について詳しくは、こちらを参照してください。
CORS の設定
CORS の設定
Web アプリケーションからのリクエストを許可するには、CORS を有効にします。本番環境では、正確なオリジンを指定します。
server.js
server.js
エラーハンドリング
エラーハンドリング
レート制限
レート制限
レート制限を使用して API を悪用から保護します。
server.js
トラブルシューティング
よくある問題と解決策
よくある問題と解決策
次のステップ
- Fastify Web App Quickstart - API を呼び出す Web アプリケーションを構築する
- Role-Based Access Control - きめ細かなアクセス権限を実装する
- API Authorization Best Practices - アクセストークンのベストプラクティスを学ぶ
- Monitor Your API - ログ記録と監視を設定する
リソース
- auth0-fastify-api GitHub - ソースコードと例
- Fastify Documentation - Fastify の詳細を確認
- Auth0 API Authentication - アクセストークンの概要
- Auth0 Community - コミュニティでサポートを得る