Skip to main content
このQuickstartは現在ベータ版です。ぜひご意見をお聞かせください。

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)
.NET のバージョン互換性: このQuickstartは .NET 8.0 以降で動作します。

はじめましょう

このQuickstartでは、ASP.NET Core Web API に Auth0 の JWT 認証を追加する方法を説明します。Auth0 ASP.NET Core API SDK を使用して、保護されたエンドポイントを備えた安全な API を構築します。
1

新しいプロジェクトを作成する

このQuickstart用に、新しいASP.NET Core Web APIプロジェクトを作成します
プロジェクトを開く
2

Auth0 SDK をインストール

3

Auth0 APIを設定する

次に、Auth0 テナントで新しい API を作成し、プロジェクトに設定を追加します。CLIコマンドを実行して自動的に行う方法と、Auth0 Dashboardから手動で行う方法のいずれかを選択できます:
Auth0 API を作成し、appsettings.json ファイルを更新するには、プロジェクトのルートディレクトリで次のシェルコマンドを実行します。
4

認証を設定する

Program.cs の内容全体を、以下のコードに置き換えます:
Program.cs
5

公開エンドポイントと保護エンドポイントを作成する

認証をテストするエンドポイントを追加します。app.Run() の前に、次のコードを Program.cs に追加します:
Program.cs
6

APIを起動する

API は現在 https://localhost:7190 で実行中です (またはそれに近い URL です。正確な URL はコンソール出力で確認してください) 。
確認これで、localhost 上で動作する Auth0 で保護された完全な機能を備えた API が利用できるようになっているはずです

高度な使い方

アクセストークンを使って、保護されたエンドポイントをテストします。1. クライアント認証情報フローを使用して Auth0 からアクセストークンを取得します:
YOUR_CLIENT_IDYOUR_CLIENT_SECRET を取得するには、Auth0 Dashboard で Machine to Machine Application を作成し、そのアプリケーションを API で認可してください。
2. 公開エンドポイントをテストします (200 OK が返されるはずです) :
3. 認証なしで保護されたエンドポイントをテストします (401 Unauthorized が返されるはずです) :
4. トークンを使って保護されたエンドポイントを呼び出します:
より大規模な API では、minimal API エンドポイントではなくコントローラーを使用します。1. コントローラーのサポートを追加します:
Program.cs
2. コントローラーを作成します:Controllers/MessagesController.cs を作成します:
Controllers/MessagesController.cs
アクセストークン内の特定のスコープに基づいてエンドポイントを保護します。1. Auth0 API でスコープを定義します:Auth0 Dashboard → APIs → Your API → Permissions で、スコープを追加します:
  • read:messages - メッセージの読み取り
  • write:messages - メッセージの書き込み
2. 認可ポリシーを設定します:
Program.cs
3. エンドポイントにポリシーを適用します:
アクセストークンをリクエストするときは、必要なスコープを含めます:
DPoP (Demonstration of Proof-of-Possession) はアクセストークンを暗号鍵に結び付け、トークンの盗難やリプレイ攻撃を防ぎます。DPoP サポートを有効にする:
Program.cs
DPoP モード:DPoP と Bearer トークンの両方を受け入れる (デフォルト) :
DPoP トークンのみを受け入れ、Bearer トークンを拒否する:
時刻のバリデーションパラメータを設定する:
DPoP の詳細については、Auth0 DPoPドキュメント を参照してください。
複雑な要件に対応するための、再利用可能な認可ポリシーを作成します。1. カスタム要件を作成する:
Authorization/HasScopeRequirement.cs
2. ハンドラーを作成する:
Authorization/HasScopeHandler.cs
3. ポリシーを登録して使用する:
Program.cs
認証されたトークンからユーザー情報を取得します。
特定の要件に応じて、JWT トークンのバリデーションパラメータをカスタマイズします。
Program.cs

追加リソース

SDKドキュメント

SDKの完全なドキュメントとAPIリファレンス

移行ガイド

JWT Bearer認証からの移行

コード例

豊富なコード例と実装パターン

DPoPドキュメント

Proof-of-Possessionセキュリティについて詳しく知る

Token Best Practices

トークンのセキュリティに関するベストプラクティス

コミュニティフォーラム

Auth0 Communityでサポートを受ける

よくある問題

問題: audience の不一致により、トークン検証 が失敗します。解決策: appsettings.jsonAudience が、Auth0 API の API 識別子と完全に一致していることを確認してください。token 内の audience claim もこの値と一致している必要があります。
問題: 発行者エラーにより、トークン検証 が失敗します。解決策: Domain が正しく、https:// を含んでいないことを確認してください。library は https://{Domain} として authority を自動的に構築します。
問題: ArgumentNullException: Value cannot be null. (Parameter 'Domain') などのエラーが発生します。解決策: appsettings.json に、Domain と audience の値を含む Auth0 セクションがあることを確認してください。Configuration が正しく読み込まれていることも確認してください。
問題: ローカル実行時に SSL/TLS 証明書エラーが発生します。解決策: 開発用証明書を信頼するよう設定してください。
または、新しい証明書を生成してください。
問題: 設定が正しいにもかかわらず、authentication が機能しません。解決策: ミドルウェアの順序が正しいことを確認してください。UseAuthentication()UseAuthorization() より前に配置する必要があります。
問題: スコープ ベースの 認可ポリシー が常に失敗します。解決策: access token に必要な スコープ が含まれていることを確認してください。token を request する際は、スコープ を指定してください。
また、スコープ が Auth0 API の設定で定義されていることも確認してください (Auth0 Dashboard → APIs → Your API → Permissions) 。

サンプルアプリケーション

すべての機能を網羅した完全なサンプルアプリケーションを、SDK のリポジトリで利用できます。

プレイグラウンドアプリケーション

公開エンドポイントと保護されたエンドポイント、DPoP のサポート、Swagger UI 連携、Postman コレクションが含まれています
クローンして実行します。