カテゴリ: Quarkus 更新日: 2026/02/16

QuarkusでJWT認証をはじめよう!初心者向けquarkus-smallrye-jwt完全入門ガイド

QuarkusでJWT認証(quarkus-smallrye-jwt)の基礎
QuarkusでJWT認証(quarkus-smallrye-jwt)の基礎

先生と生徒の会話形式で理解しよう

生徒

「Quarkusでログイン機能を作りたいんですが、JWT認証ってよく聞くけど難しそうです…」

先生

「Quarkusでは、OAuth2やJWT認証をとてもシンプルに実装できます。特にquarkus-smallrye-jwtを使うと設定も少なく済みますよ。」

生徒

「JWTって何をしている仕組みなんですか?」

先生

「トークンを使って利用者を安全に識別する仕組みです。では、基礎から順番に見ていきましょう。」

1. QuarkusとJWT認証の全体像

1. QuarkusとJWT認証の全体像
1. QuarkusとJWT認証の全体像

Quarkusは、Java向けの軽量フレームワークで、クラウドネイティブやマイクロサービス開発に向いています。Quarkus JWT認証は、JSON Web Tokenを利用して利用者の認証と認可を行う仕組みです。サーバ側でセッションを保持しないため、REST APIやOAuth2連携と相性が良く、スケーラブルな設計が可能になります。quarkus-smallrye-jwtは、そのJWT認証を簡単に実装するための公式拡張機能です。

2. JWTとは何かを初心者向けに解説

2. JWTとは何かを初心者向けに解説
2. JWTとは何かを初心者向けに解説

JWTは、署名付きの文字列データで、利用者情報や権限情報を中に含めることができます。ログイン成功時に発行され、以後のAPI呼び出し時に送信されます。JWTは改ざん検知ができるため、安全に利用者を識別できます。Quarkus JWT認証では、このJWTを検証してアクセス制御を行います。

3. quarkus-smallrye-jwtの導入手順

3. quarkus-smallrye-jwtの導入手順
3. quarkus-smallrye-jwtの導入手順

Quarkusプロジェクトでは、拡張機能としてJWT認証を追加します。MavenやGradleを使っている場合でも、Quarkus拡張として追加するだけで基本設定が整います。初心者でも迷いにくいのが特徴です。


@ApplicationScoped
public class JwtConfigExample {
    public String getIssuer() {
        return "example-issuer";
    }
}

4. application.propertiesでの基本設定

4. application.propertiesでの基本設定
4. application.propertiesでの基本設定

Quarkus JWT認証では、application.propertiesに発行者や公開鍵の場所を設定します。これにより、受信したJWTが正しいかどうかを自動で検証してくれます。設定はシンプルで、初心者でも理解しやすい構成になっています。


quarkus.smallrye-jwt.enabled=true
mp.jwt.verify.issuer=example-issuer
mp.jwt.verify.publickey.location=publicKey.pem

5. JWTを使った認証付きAPIの作成

5. JWTを使った認証付きAPIの作成
5. JWTを使った認証付きAPIの作成

JWT認証が有効になると、特定のAPIに対して認証を必須にできます。アノテーションを付けるだけで、JWTが無い場合や不正な場合は自動的に拒否されます。Quarkus OAuth2 JWT連携の基本的な使い方として覚えておくと便利です。


@Path("/secure")
public class SecureResource {

    @GET
    @RolesAllowed("user")
    public String secureHello() {
        return "JWT認証に成功しました";
    }
}

JWT認証に成功しました

6. JWTの中身をコードで確認する方法

6. JWTの中身をコードで確認する方法
6. JWTの中身をコードで確認する方法

quarkus-smallrye-jwtでは、JWTに含まれる情報をコードから簡単に取得できます。利用者名や権限を取得して、処理を分岐させることも可能です。これにより、細かな認可制御が実装できます。


@Inject
JsonWebToken jwt;

public String getUserName() {
    return jwt.getName();
}

7. OAuth2とJWT認証の関係

7. OAuth2とJWT認証の関係
7. OAuth2とJWT認証の関係

OAuth2は認可の仕組みで、JWTはその結果として使われるトークン形式の一つです。Quarkus OAuth2 JWT構成では、外部認証基盤と連携し、受け取ったJWTを検証する役割を担います。これにより、ログイン処理を外部に任せつつ、安全なAPIを構築できます。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

Quarkus JWT認証でよくあるつまずきは、発行者設定の不一致や公開鍵の配置ミスです。また、JWTの有効期限切れにも注意が必要です。エラーメッセージを確認しながら、一つずつ設定を見直すことで解決しやすくなります。

カテゴリの一覧へ
新着記事
New1
Micronaut
Micronautの@Factoryとは?複雑なBean生成を管理するための方法を解説
New2
Quarkus
QuarkusのDIとCDIを完全理解!@Producesでプロデューサーメソッドを使う方法を初心者向けに解説
New3
Java
JavaのStringBufferクラスを徹底解説!スレッド安全な文字列操作の仕組みと使い分け
New4
Micronaut
Micronautで非同期HTTP処理を行う方法!リアクティブ対応の基礎知識
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkus入門!GitHub ActionsでCI/CDパイプラインを構築して自動ビルドを実現する方法
No.2
Java&Spring記事人気No2
Java
Javaのコンパイルと実行の流れを解説!JVM・JDK・JREの違いも初心者向けに整理
No.3
Java&Spring記事人気No3
Quarkus
QuarkusのCI/CD入門!GitHub Actionsで自動デプロイを実現する方法
No.4
Java&Spring記事人気No4
Micronaut
Micronautのルーティング設定ガイド!プレフィックス付与とAPIバージョニングの基本
No.5
Java&Spring記事人気No5
Micronaut
Micronautのフィルタ徹底解説!HTTPリクエスト共通処理をスマートに追加する方法
No.6
Java&Spring記事人気No6
Java
Java Optional ifPresentの使い方を徹底解説!nullチェックをスマートに省略する方法
No.7
Java&Spring記事人気No7
Java
Java Functionインタフェースの使い方を完全ガイド!map変換と処理チェーンを理解する
No.8
Java&Spring記事人気No8
Java
JavaのString比較を徹底解説!equalsと==の違い、初心者が陥る罠とは?