AI プロンプト
AI プロンプト
AIを使ってAuth0を統合していますか? このプロンプトをCursor、Windsurf、Copilot、Claude Codeなどお好みのAI搭載IDEに追加して、開発を効率化しましょう。
このクイックスタートを進めるには、以下が必要です。
- Python 3.9 以上
- pip パッケージマネージャー
- jq - Auth0 CLI のセットアップに必要
- FastAPI の基本的な知識
Auth0 APIを設定する
FastAPI アプリケーションを表す Auth0 API を作成する必要があります。ドメイン と Identifier (オーディエンス) の値を控えておいてください。これらは次の手順で必要になります。
- ダッシュボード
- CLI
- Auth0 Dashboard で Applications > APIs に移動します
- Create API をクリックします
- API の 名前 を入力します (例: “My FastAPI API”)
- Identifier を API 識別子に設定します (例:
https://my-fastapi-api) - Signing Algorithm は RS256 のままにします
- Create をクリックします
Identifier は API の一意の識別子です。URL を使用することを推奨しますが、公開されている URL である必要はありません。Auth0 からこの URL が呼び出されることはありません。この値は後から変更できません。
API の権限を定義する
Permissions (スコープとも呼ばれます) を使用すると、API へのアクセス方法を定義できます。API の Permissions は Auth0 Dashboard で作成できます。
- Auth0 Dashboard で、API の Permissions タブに移動します
- 次の Permissions を追加します:
- 説明が “Read messages” の
read:messages - 説明が “Write messages” の
write:messages
- 説明が “Read messages” の
Auth0のクライアントを設定する
Auth0 の設定を保存するため、プロジェクトのルートに
.env ファイルを作成します。.env
YOUR_AUTH0_DOMAIN をご利用の Auth0 ドメイン (例: dev-abc123.us.auth0.com) に、YOUR_API_IDENTIFIER を API 作成時に設定した識別子に置き換えます。次に、app.py ファイルを作成し、Auth0 を使用して FastAPI アプリケーションを初期化します。app.py
保護されたルートを作成
次のルートを
app.py ファイルに追加してください。これらのルートは、アクセス制御のレベルの違いを示しています。app.py
require_auth() メソッドは、Authorization ヘッダーで送信されたアクセストークンを検証します。scopes パラメーターを指定して呼び出すと、トークンに指定した権限が含まれていることも検証します。API をテストする
アクセストークンを取得する
- Auth0 Dashboard で Applications > APIs に移動します
- API を選択します
- Test タブをクリックします
- Asking Auth0 for tokens from my application セクションで Copy Token をクリックします
API を呼び出す
read:messages スコープが含まれていることを確認します。
高度な使用方法
カスタムクレームを検証する
カスタムクレームを検証する
クレームを使用せずにエンドポイントを保護する
クレームを使用せずにエンドポイントを保護する
エンドポイントを保護する必要はあってもクレームにアクセスする必要がない場合は、これによりアクセストークンは検証されますが、クレームは関数に渡されません。
dependencies パラメーターを使用できます。DPoP サポート
DPoP サポート
DPoP (Demonstrating Proof-of-Possession) は現在 Early Access 段階です。テナントで有効にするには、Auth0 support にお問い合わせください。
Authorization: DPoP <token> ヘッダーと DPoP: <proof> ヘッダーの両方を含める必要があります。SDK は DPoP proof を自動的に検証し、アクセストークンに結び付けます。リバースプロキシ向けの設定
リバースプロキシ向けの設定
アプリケーションがリバースプロキシ (nginx、AWS ALB など) の背後で動作している場合、DPoP の検証を正しく機能させるには、プロキシの信頼を有効にする必要があります。必要なヘッダーを転送するように、リバースプロキシを設定します。これは DPoP の検証に不可欠です。SDK では、クライアントが使用した正確な URL と一致させる必要があるためです。プロキシの信頼を有効にしないと、アプリケーションには内部 URL が見える一方で、DPoP proof は外部 URL を参照するため、検証に失敗します。
エラー処理
エラー処理
よくある問題
401 Unauthorized - オーディエンスが無効
401 Unauthorized - オーディエンスが無効
401 Unauthorized - issuer が無効
401 Unauthorized - issuer が無効
403 Forbidden - スコープが不足している
403 Forbidden - スコープが不足している
問題: 有効なアクセストークンを使用していても、保護されたエンドポイントから 403 が返されます。解決策: アクセストークンに必要なスコープが含まれていません。
- エンドポイントに必要なスコープを確認します
- トークンをリクエストする際に、必要なスコープを含めるようにします
- Auth0 Dashboard の API の Permissions タブに、そのスコープが存在することを確認します
- jwt.io でトークンをデコードし、必要な値を含む
scopeクレームがあることを確認します
ModuleNotFoundError: No module named 'fastapi_plugin'
ModuleNotFoundError: No module named 'fastapi_plugin'
問題: Python が Auth0 FastAPI SDK を見つけられません。解決策: SDK が現在アクティブな仮想環境にインストールされていることを確認してください。
Auth0 に接続できない(JWKS の取得に失敗)
Auth0 に接続できない(JWKS の取得に失敗)
問題: アプリケーションが Auth0 から署名鍵を取得できません。解決策: ネットワーク接続とドメイン設定を確認してください。
-
ドメインにアクセスできることを確認します:
-
ファイアウォールで
*.auth0.comへのアウトバウンド HTTPS (ポート 443) 接続が許可されていることを確認します -
企業プロキシの配下にある場合は、
HTTP_PROXYとHTTPS_PROXY環境変数を設定します
DPoP 検証が失敗する
DPoP 検証が失敗する
問題: DPoP 認証で、URL または proof の検証に関するエラーが返されます。解決策:
-
リバースプロキシの配下にある場合は、プロキシの信頼設定を有効にします:
-
プロキシが次のヘッダーを転送していることを確認します:
X-Forwarded-ProtoX-Forwarded-HostX-Forwarded-Prefix
- テナントで DPoP が有効になっていることを確認します (Auth0 サポートにお問い合わせください)
-
DPoP proof の
htuクレームがリクエスト URL と完全に一致していることを確認します
次のステップ
SDK ドキュメント
高度な設定や実装例については、GitHub の Auth0 FastAPI SDK を参照してください
スコープと権限
きめ細かなアクセス制御のために、スコープを定義して活用する方法を学びます
Auth0 Actions
認証フローをカスタマイズし、トークンにカスタムクレームを追加します
FastAPI ドキュメント
FastAPI の機能、非同期パターン、ベストプラクティスについて詳しく学びます
API 認可
API にロールベースアクセス制御 (RBAC) を実装します
本番環境にデプロイ
Auth0 を使用した FastAPI アプリケーションのデプロイに関するベストプラクティス