このQuickstartは現在ベータ版です。ぜひご意見をお聞かせください。
AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などのAIコーディングアシスタントを使っている場合は、Agent Skills を使って、数分で Auth0認証 を自動的に追加できます。インストール:次に、AI アシスタントに次のように依頼します:AI アシスタントが、Auth0 API の作成、資格情報の取得、Auth0 ASP.NET Core Authentication API SDK のインストール、JWT Bearer認証の設定、保護された API エンドポイントの実装を自動的に行います。Agent Skills の完全なドキュメント →
前提条件: 始める前に、次のものがインストールされていることを確認してください。
- .NET 8.0 SDK 以降
- 使用する IDE (Visual Studio 2022、VS Code、または Rider)
はじめましょう
1
新しいプロジェクトを作成する
このQuickstart用に、新しいASP.NET Core Web APIプロジェクトを作成しますプロジェクトを開く
2
Auth0 SDK をインストール
3
Auth0 APIを設定する
次に、Auth0 テナントで新しい API を作成し、プロジェクトに設定を追加します。CLIコマンドを実行して自動的に行う方法と、Auth0 Dashboardから手動で行う方法のいずれかを選択できます:
- CLI
- Auth0 Dashboard
Auth0 API を作成し、
appsettings.json ファイルを更新するには、プロジェクトのルートディレクトリで次のシェルコマンドを実行します。- Mac/Linux
- Windows (PowerShell)
4
認証を設定する
Program.cs の内容全体を、以下のコードに置き換えます:Program.cs
5
公開エンドポイントと保護エンドポイントを作成する
認証をテストするエンドポイントを追加します。
app.Run() の前に、次のコードを Program.cs に追加します:Program.cs
6
APIを起動する
https://localhost:7190 で実行中です (またはそれに近い URL です。正確な URL はコンソール出力で確認してください) 。確認これで、localhost 上で動作する Auth0 で保護された完全な機能を備えた API が利用できるようになっているはずです
高度な使い方
保護された API の呼び出し
保護された API の呼び出し
アクセストークンを使って、保護されたエンドポイントをテストします。1. クライアント認証情報フローを使用して Auth0 からアクセストークンを取得します:2. 公開エンドポイントをテストします (200 OK が返されるはずです) :3. 認証なしで保護されたエンドポイントをテストします (401 Unauthorized が返されるはずです) :4. トークンを使って保護されたエンドポイントを呼び出します:
YOUR_CLIENT_ID と YOUR_CLIENT_SECRET を取得するには、Auth0 Dashboard で Machine to Machine Application を作成し、そのアプリケーションを API で認可してください。スコープベースの認可でルートを保護する
スコープベースの認可でルートを保護する
アクセストークン内の特定のスコープに基づいてエンドポイントを保護します。1. Auth0 API でスコープを定義します:Auth0 Dashboard → APIs → Your API → Permissions で、スコープを追加します:3. エンドポイントにポリシーを適用します:アクセストークンをリクエストするときは、必要なスコープを含めます:
read:messages- メッセージの読み取りwrite:messages- メッセージの書き込み
Program.cs
Enhanced Security のために DPoP を使用する
Enhanced Security のために DPoP を使用する
DPoP (Demonstration of Proof-of-Possession) はアクセストークンを暗号鍵に結び付け、トークンの盗難やリプレイ攻撃を防ぎます。DPoP サポートを有効にする:DPoP モード:DPoP と Bearer トークンの両方を受け入れる (デフォルト) :DPoP トークンのみを受け入れ、Bearer トークンを拒否する:時刻のバリデーションパラメータを設定する:
Program.cs
DPoP の詳細については、Auth0 DPoPドキュメント を参照してください。
カスタム認可ポリシーを実装する
カスタム認可ポリシーを実装する
複雑な要件に対応するための、再利用可能な認可ポリシーを作成します。1. カスタム要件を作成する:2. ハンドラーを作成する:3. ポリシーを登録して使用する:
Authorization/HasScopeRequirement.cs
Authorization/HasScopeHandler.cs
Program.cs
ユーザー情報へのアクセス
ユーザー情報へのアクセス
認証されたトークンからユーザー情報を取得します。
カスタムトークン検証
カスタムトークン検証
特定の要件に応じて、JWT トークンのバリデーションパラメータをカスタマイズします。
Program.cs
追加リソース
SDKドキュメント
SDKの完全なドキュメントとAPIリファレンス
移行ガイド
JWT Bearer認証からの移行
コード例
豊富なコード例と実装パターン
DPoPドキュメント
Proof-of-Possessionセキュリティについて詳しく知る
Token Best Practices
トークンのセキュリティに関するベストプラクティス
コミュニティフォーラム
Auth0 Communityでサポートを受ける
よくある問題
Configuration の値が見つかりません
Configuration の値が見つかりません
問題:
ArgumentNullException: Value cannot be null. (Parameter 'Domain') などのエラーが発生します。解決策: appsettings.json に、Domain と audience の値を含む Auth0 セクションがあることを確認してください。Configuration が正しく読み込まれていることも確認してください。開発環境での HTTPS 証明書エラー
開発環境での HTTPS 証明書エラー
問題: ローカル実行時に SSL/TLS 証明書エラーが発生します。解決策: 開発用証明書を信頼するよう設定してください。または、新しい証明書を生成してください。
ミドルウェアの順序に関する問題
ミドルウェアの順序に関する問題
問題: 設定が正しいにもかかわらず、authentication が機能しません。解決策: ミドルウェアの順序が正しいことを確認してください。
UseAuthentication() は UseAuthorization() より前に配置する必要があります。認可ポリシー で スコープ が機能しない
認可ポリシー で スコープ が機能しない
問題: スコープ ベースの 認可ポリシー が常に失敗します。解決策: access token に必要な スコープ が含まれていることを確認してください。token を request する際は、スコープ を指定してください。また、スコープ が Auth0 API の設定で定義されていることも確認してください (Auth0 Dashboard → APIs → Your API → Permissions) 。
サンプルアプリケーション
プレイグラウンドアプリケーション
公開エンドポイントと保護されたエンドポイント、DPoP のサポート、Swagger UI 連携、Postman コレクションが含まれています