Skip to main content
このクイックスタートは現在 ベータ版 です。ぜひフィードバックをお寄せください。

AI プロンプト

AIを使ってAuth0を統合しますか? このプロンプトをCursor、Windsurf、Copilot、Claude Code、またはお好みのAI搭載IDEに追加して、開発を高速化しましょう。
前提条件: 作業を開始する前に、次のものがインストールされていることを確認してください:.NET バージョン互換性: このクイックスタートは .NET 8.0 以降に対応しています。

はじめに

このクイックスタートでは、ASP.NET Core Web API に Auth0 の JWT 認証機能を追加する方法を解説します。Auth0 ASP.NET Core API ソフトウェア開発キット (SDK) を使用して、保護されたエンドポイントを備えた安全な API を構築します。
1

新規プロジェクトを作成

このクイックスタート用に新しい ASP.NET Core Web API プロジェクトを作成する
プロジェクトを開きます
2

Auth0 ソフトウェア開発キット (SDK) をインストール

3

Auth0 API をセットアップする

次に、Auth0 テナントで新しい API を作成し、その設定をプロジェクトに追加する必要があります。CLIコマンドを実行して自動的に実行するか、ダッシュボードから手動で実行するかを選択できます:
プロジェクトのルートディレクトリで次のシェル コマンドを実行して、Auth0 API を作成し、appsettings.json ファイルを更新してください。
4

認証を設定する

Program.cs の内容をすべて、次のコードに置き換えてください。
Program.cs
5

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

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

API を起動する

API は現在 https://localhost:7190(または類似の URL)で実行されています。正確な URL はコンソール出力を確認してください。
チェックポイントこれで、Auth0 で保護された正常に動作する API が、localhost 上で稼働しているはずです。

高度な利用方法

アクセストークンを使用して保護されたエンドポイントをテストします。1. アクセストークンを取得します。 Client Credentials フローを使用して Auth0 から取得します。
YOUR_CLIENT_IDYOUR_CLIENT_SECRET を取得するには、Auth0 Dashboard で Machine to Machine アプリケーションを作成し、対象の 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 → 対象の 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 によるセキュリティについて学ぶ

トークンのベストプラクティス

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

コミュニティフォーラム

Auth0 コミュニティでサポートを受ける

Common Issues

問題: オーディエンスの不一致エラーにより、トークン検証に失敗します。解決方法: appsettings.jsonAudience が Auth0 API の Identifier と完全に一致していることを確認します。トークン内の audience クレームはこの値と一致している必要があります。
問題: issuer エラーにより、トークン検証に失敗します。解決方法: ドメインが正しく設定されており、https:// を含んでいないことを確認します。ライブラリは自動的に https://{Domain} という形式で authority を構築します。
問題: ArgumentNullException: Value cannot be null. (Parameter 'Domain') などのエラーが発生します。解決方法: appsettings.json に Auth0 セクションがあり、その中に Domain と Audience の値が含まれていることを確認します。設定が正しく読み込まれているかを確認します:
問題: ローカルで実行した際に SSL/TLS 証明書エラーが発生します。解決方法: 開発用証明書を信頼済みに設定します:
または、新しい証明書を生成します:
問題: 設定が正しいにもかかわらず、認証が機能しません。解決方法: ミドルウェアの順序が正しいことを確認します。UseAuthentication()UseAuthorization() の前に記述する必要があります:
問題: スコープベースの認可ポリシーが常に失敗します。解決方法: アクセストークンに必要なスコープが含まれていることを確認します。トークンをリクエストする際に、スコープを指定します:
また、Auth0 の API 設定でスコープが定義されていることを確認します(Dashboard → APIs → 対象の API → Permissions)。

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

すべての機能を網羅した完全なサンプルアプリケーションは、ソフトウェア開発キット (SDK) のリポジトリで入手できます。

Playground アプリケーション

公開エンドポイントおよび保護されたエンドポイント、DPoP 対応、Swagger UI との統合、Postman コレクションを含みます
クローンして実行します: