Skip to main content
この Quickstart は現在 Beta です。ぜひフィードバックをお寄せください!

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 の完全なドキュメント →
前提条件: 始める前に、以下がインストールされていることを確認してください。
  • Spring Boot 3.2+ との互換性に必要な JDK 17+
  • 依存関係管理に必要な Maven 3.6+ または Gradle 7+
  • お使いの IDE (IntelliJ IDEA、Eclipse、または Java をサポートする VS Code)
Java バージョンの互換性: この Quickstart は Java 17+ および Spring Boot 3.2+ で動作します。

はじめましょう

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

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

このQuickstart向けに、新しい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コマンドを実行して自動的に行う方法と、Auth0 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. クライアント認証情報フローを使用して、Auth0 からアクセストークンを取得します。
YOUR_CLIENT_IDYOUR_CLIENT_SECRET を取得するには、Auth0 Dashboard で Machine to Machine アプリケーションを作成し、その 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 クレームは、この値と一致している必要があります。
問題: トークンの発行者のバリデーションに失敗します。解決策: Domain が正しく、https:// を含んでいないことを確認してください。https:// なしのドメインを使用します。
問題: アプリケーションが設定エラーのため起動に失敗します。解決策: application.yml の構造とプロパティ名を確認してください。auth0 セクションに domain と audience の値が含まれていることを確認します。
問題: 設定が正しいにもかかわらず、認証が機能しません。解決策: Auth0AuthenticationFilter が Spring Security チェーンに正しく組み込まれていることを確認してください。このフィルターは UsernamePasswordAuthenticationFilter より前に追加する必要があります。
問題: JWKS の取得に失敗する、または接続タイムアウトが発生します。解決策: 企業のファイアウォールが Auth0 のエンドポイントをブロックしている可能性があります。HTTPS アクセス用に Auth0 ドメインを許可リストに追加してください。
問題: スコープベースの認可ポリシーが常に失敗します。解決策: access token に必要なスコープが含まれていることを確認してください。トークンをリクエストする際は、スコープを指定します。
また、スコープが Auth0 API の設定でも定義されていることを確認してください (Auth0 Dashboard → APIs → Your API → Permissions) 。

追加リソース

SDKドキメント

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

コード例

豊富なコード例と連携パターン

DPoPドキュメント

Proof-of-Possessionによるセキュリティ強化について詳しく学ぶ

Spring Securityリファレンス

Spring Securityの公式ドキュメント

Auth0 Dashboard

Auth0 APIやアプリケーションを管理

コミュニティフォーラム

Auth0 Communityでサポートを受ける

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

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

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

公開エンドポイントと保護されたエンドポイント、DPoP のサポート、豊富な 例が含まれています
クローンして実行します:
curlでのテスト: