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

AI を使って Auth0 を統合する

Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って、数分で Auth0 認証を自動的に追加できます。インストール:
次に、AI アシスタントに次のように依頼します。
AI アシスタントは、Auth0 API の作成、認証情報の取得、Auth0 Spring Boot API SDK 依存関係の追加、application.yml の設定、JWT 検証と保護されたエンドポイントを備えた SecurityFilterChain の実装を自動的に行います。agent skills の完全なドキュメント →
前提条件: 開始する前に、次のものがインストールされていることを確認してください。
  • JDK 17+: Spring Boot 3.2+ との互換性のため
  • Maven 3.6+ または Gradle 7+: 依存関係管理のため
  • 使用する IDE (IntelliJ IDEA、Eclipse、または Java をサポートする VS Code)
Java バージョンの互換性: このクイックスタートは Java 17+ および Spring Boot 3.2+ に対応しています。

はじめに

このクイックスタートでは、Spring Boot API に Auth0 JWT 認証を追加する方法を説明します。Auth0 Spring Boot API SDK を使用して、保護されたエンドポイントを持つ安全な API を構築します。
1

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

このクイックスタート用の新しい Spring Boot API プロジェクトを作成します。Spring Initializr を使用する場合:
または、Maven で手動作成します。
2

Auth0 SDK を追加

Auth0 Spring Boot API SDK を、プロジェクトの依存関係に追加します。Maven (pom.xml):
Gradle (build.gradle) :
3

Auth0 API を設定する

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

認証を設定する

Auth0 JWT 認証を有効にするセキュリティ構成クラスを作成します。src/main/java/com/example/auth0api/SecurityConfig.java を作成します。
src/main/java/com/example/auth0api/SecurityConfig.java
5

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

認証をテストするための API エンドポイントを作成します。src/main/java/com/example/auth0api/ApiController.java を作成します。
src/main/java/com/example/auth0api/ApiController.java
6

API を起動する

Spring Boot アプリケーションを起動します。Maven:
Gradle:
API は http://localhost:8080 で実行中です (正確な URL はコンソール出力を確認してください) 。
チェックポイントこれで、Auth0 で保護された API が localhost 上で完全に動作しているはずです。

高度な使い方

アクセストークンを使用して、保護されたエンドポイントをテストします。1. Client Credentials フローを使用して Auth0 からアクセストークンを取得します。
YOUR_CLIENT_IDYOUR_CLIENT_SECRET を取得するには、Auth0 Dashboard で Machine to Machine Application を作成し、 API へのアクセスを認可します。
2. 公開エンドポイントをテストします (200 OK が返されるはずです) 。
3. 認証なしで保護されたエンドポイントをテストします (401 Unauthorized が返されるはずです) 。
4. トークンを使用して保護されたエンドポイントを呼び出します。
エンドポイントで、追加のユーザー情報やトークンクレームにアクセスします。
セキュリティをさらに強化するために、JWT スコープを使用したきめ細かなアクセス制御を実装します。1. Auth0 API でスコープを定義します。Auth0 Dashboard → APIs → Your API → Permissions で、スコープを追加します。
  • read:users - ユーザーデータの読み取り
  • write:users - ユーザーデータの書き込み
  • admin - 管理者アクセス
2. 認可ポリシーを設定します。
アクセストークンをリクエストする際は、必要なスコープを含めます。
アクセストークンを暗号鍵に関連付けてトークンのセキュリティを強化するため、DPoP (Demonstration of Proof-of-Possession) を有効にします。application.yml で DPoP サポートを設定します。
DPoP モード:
  • ALLOWED (デフォルト) : Bearer トークンと DPoP トークンの両方を受け入れます
  • REQUIRED: DPoP トークンのみを受け入れ、Bearer トークンは拒否します
  • DISABLED: 標準の JWT Bearer 検証のみ
    DPoP の詳細については、Auth0 DPoP Documentation を参照してください。

よくある問題

問題: 有効なトークンを使用していても、API から 401 が返されます。解決策: auth0.audience が Auth0 API 識別子と完全に一致していることを確認してください。トークン内の audience クレームは、この値と一致している必要があります。
問題: トークンの発行元の検証に失敗します。解決策: ドメインが正しく、https:// が含まれていないことを確認してください。https:// プレフィックスなしのドメインを使用します。
問題: 設定エラーにより、アプリケーションの起動に失敗します。解決策: application.yml の構造とプロパティ名を確認してください。auth0 セクションにドメインとオーディエンスの値が含まれていることを確認します。
問題: 設定が正しいにもかかわらず、認証が機能しません。解決策: Auth0AuthenticationFilter が Spring Security チェーンに適切に組み込まれていることを確認してください。フィルターは UsernamePasswordAuthenticationFilter より前に追加する必要があります。
問題: JWKS の取得に失敗するか、接続タイムアウトが発生します。解決策: 企業のファイアウォールが Auth0 エンドポイントをブロックしている可能性があります。HTTPS アクセス用に Auth0 ドメインを許可リストに追加してください。
問題: スコープベースの認可ポリシーが常に失敗します。解決策: アクセストークンに必要なスコープが含まれていることを確認してください。トークンをリクエストするときは、スコープを指定します。
また、Auth0 API の設定でスコープが定義されていることも確認してください (Dashboard → APIs → Your API → Permissions) 。

追加リソース

SDK ドキュメント

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

コード例

包括的なコード例と統合パターン

DPoP ドキュメント

proof-of-possession によるセキュリティ強化について確認する

Spring Security リファレンス

Spring Security の公式ドキュメント

Auth0 Dashboard

Auth0 の API とアプリケーションを管理する

コミュニティフォーラム

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

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

すべての機能を実演する完全なサンプルアプリケーションが、SDK リポジトリで公開されています。

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

公開エンドポイントと保護されたエンドポイント、DPoP サポート、および包括的な サンプルが含まれています
クローンして実行します:
curl でのテスト: