メインコンテンツへスキップ
前提条件: 始める前に、次のものがインストールされていることを確認してください。
  • Java Development Kit (JDK): バージョン 8 以降
  • ビルドツール: Maven 3.6+ または Gradle 6.0+
  • アプリケーションサーバー: Apache Tomcat 9.0+ または任意のサーブレットコンテナ
  • Auth0 アカウント: お持ちでない場合は、無料でサインアップ してください

AI を使って Auth0 を統合する

Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って数分で Auth0 の認証を自動的に追加できます。インストール:
npx skills add auth0/agent-skills --skill auth0-quickstart --skill auth0-java-mvc-common
次に、AI アシスタントに次のように依頼します。
Add Auth0 authentication to my Java servlet app
AI アシスタントは、Auth0 アプリケーションの作成、認証情報の取得、Auth0 Java MVC Commons SDK 依存関係の追加、web.xml の設定、サーブレットフィルターを使ったログイン/ログアウト フローの実装を自動的に行います。agent skills の完全なドキュメント →

はじめに

このクイックスタートでは、Javaサーブレットアプリケーションに Auth0 の認証を追加する方法を紹介します。Auth0 Java MVC Commons SDK を使用して、ログイン、ログアウト、ユーザープロフィール機能を備えたセキュアな Web アプリケーションを構築します。
1

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

このquickstart用に、新しい Java Web アプリケーションプロジェクトを作成します。
mvn archetype:generate \
  -DgroupId=com.auth0.example \
  -DartifactId=auth0-servlet-app \
  -DarchetypeArtifactId=maven-archetype-webapp \
  -DinteractiveMode=false
プロジェクトディレクトリに移動します。
cd auth0-servlet-app
2

Auth0 Java MVC Commons SDK をインストールする

プロジェクトのビルドファイルにAuth0の依存関係を追加します。
次の依存関係を pom.xml に追加します。
<dependencies>
    <dependency>
        <groupId>com.auth0</groupId>
        <artifactId>mvc-auth-commons</artifactId>
        <version>1.11.1</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>
3

Auth0 アプリケーションを設定する

次に、Auth0テナントで新しいアプリケーションを作成し、その設定をプロジェクトに追加します。
  1. Auth0 Dashboard に移動します
  2. Applications > Applications > Create Application をクリックします
  3. ポップアップでアプリの名前を入力し、アプリケーションの種類として Regular Web Application を選択して、Create をクリックします
  4. Application Details ページで Settings タブに切り替えます
  5. Dashboard で ドメインクライアントIDクライアントシークレット の値を控えます
  6. 最後に、Application Details ページの Settings タブで、次の URL を設定します:
Allowed Callback URLs:
http://localhost:8080/callback
Allowed Logout URLs:
http://localhost:8080/login
許可する Web オリジン:
http://localhost:8080
  • Allowed Callback URLs は、認証後にユーザーを安全にアプリケーションへ戻すための重要なセキュリティ対策です。一致する URL がない場合、ログイン処理は失敗し、ユーザーはアプリにアクセスできず、代わりに Auth0 のエラーページが表示されます。
  • Allowed Logout URLs は、サインアウト時にシームレスなユーザー体験を提供するうえで不可欠です。一致する URL がない場合、ログアウト後にユーザーはアプリケーションへリダイレクトされず、代わりに Auth0 の汎用ページに留まることになります。
  • Allowed Web Origins は、サイレント認証に不可欠です。これが設定されていないと、ユーザーはページを更新したときや、後でアプリに戻ったときにログアウトされます。
4

Auth0 SDK を構成する

上で生成した Auth0 の認証情報を使うように web.xml を設定し、servlet アプリケーションで Auth0 SDK を利用できるようにします。src/main/webapp/WEB-INF/web.xml を作成または更新し、プレースホルダーの値を実際の Auth0 アプリケーション設定に置き換えます。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <display-name>Auth0 Servlet Example</display-name>

    <!-- Auth0 設定 -->
    <context-param>
        <param-name>com.auth0.domain</param-name>
        <param-value>YOUR_AUTH0_DOMAIN</param-value>
    </context-param>
    <context-param>
        <param-name>com.auth0.clientId</param-name>
        <param-value>YOUR_AUTH0_CLIENT_ID</param-value>
    </context-param>
    <context-param>
        <param-name>com.auth0.clientSecret</param-name>
        <param-value>YOUR_AUTH0_CLIENT_SECRET</param-value>
    </context-param>
</web-app>
重要: YOUR_AUTH0_DOMAINYOUR_AUTH0_CLIENT_IDYOUR_AUTH0_CLIENT_SECRET は、Auth0 アプリケーションの設定にある実際の値に置き換えてください。
5

認証コンポーネントとフィルターを作成

認証フローの処理とセキュアなページの保護に必要なJavaクラスを作成します。
6

ユーザーインターフェースのページを作成する

アプリケーション用の JSP ページと HTML ファイルを作成します。
7

アプリケーションをビルドして実行する

これで、アプリケーションをビルドして実行する準備が整いました。
アプリケーションをビルドします。
mvn clean compile war:war
Tomcat にデプロイします。
# WAR ファイルを Tomcat の webapps ディレクトリにコピーします
cp target/auth0-servlet-app.war $CATALINA_HOME/webapps/ROOT.war
Tomcat (または任意のサーブレットコンテナ) を起動します。
$CATALINA_HOME/bin/startup.sh  # Unix/Linux/Mac の場合
# または
$CATALINA_HOME/bin/startup.bat  # Windows の場合
チェックポイントこれで、http://localhost:8080/ で動作する、Auth0 と統合された完全なサーブレットアプリケーションが利用できるようになっているはずです。実装をテストします。
  1. アプリケーションの URL にアクセスします
  2. 「Auth0 でログイン」をクリックします
  3. Auth0 のログインプロセスを完了します
  4. トークンが表示されるユーザープロファイルページにリダイレクトされるはずです
  5. 「ログアウト」をクリックしてセッションをクリアします

高度な使用方法

基本的な認証が動作するようになったら、次の機能拡張を検討してください。
  • ユーザープロフィール情報: IDトークンをデコードしてユーザー情報を表示する
  • API 呼び出し: アクセストークンを使用して Auth0 の Management API や独自の API を呼び出す
  • ロールベースのアクセス制御: Auth0 のロールと権限を使用して認可を実装する
  • シングルサインオン: 複数のアプリケーション間で SSO を構成する
よくある問題「無効なコールバックURL」により認証に失敗する
  • Auth0アプリケーション設定のコールバックURL が、次の値と完全に一致していることを確認します: http://localhost:8080/callback
「domain、clientId、または clientSecret がありません」エラー
  • web.xml の設定に正しい Auth0アプリケーションの値が含まれていることを確認します
  • パラメーター名が次のとおり完全に一致していることを確認します: com.auth0.domain, com.auth0.clientId, com.auth0.clientSecret
アプリケーションが起動しない
  • 必要な依存関係がすべてクラスパスに含まれていることを確認します
  • 使用しているサーブレットコンテナが Servlet API 3.0 以降をサポートしていることを確認します
  • サーバーログで具体的なエラーメッセージを確認します
セッションが維持されない
  • サーブレットコンテナがセッション管理用に設定されていることを確認します
  • ブラウザーでクッキーが有効になっていることを確認します
  • 本番環境では HTTPS を使用していることを確認します
追加のサポートについては、Auth0 Community にアクセスするか、Auth0 Support Center を確認してください。