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

Quarkusのセキュリティ基礎を完全解説!初心者でもわかる認証と認可の基本

Quarkusの認証と認可の基本をわかりやすく解説
Quarkusの認証と認可の基本をわかりやすく解説

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

生徒

「Quarkusでアプリを作るときに、ユーザーの認証やアクセス制御ってどうやって実装するんですか?」

先生

「Quarkusでは、認証と認可の基本を押さえることで安全なアプリケーションを作ることができます。順を追って説明しますね。」

生徒

「まず、認証と認可の違いって何ですか?」

先生

「認証は『このユーザーが誰かを確認する』こと、認可は『確認したユーザーが何をできるかを決める』ことです。」

生徒

「なるほど、Quarkusでは具体的にどう設定するんですか?」

先生

「Quarkusは標準でセキュリティ拡張を提供しているので、依存関係を追加して簡単に認証と認可を組み込めます。」

1. Quarkusのセキュリティ拡張とは?

1. Quarkusのセキュリティ拡張とは?
1. Quarkusのセキュリティ拡張とは?

Quarkusにはquarkus-security拡張やquarkus-oidc拡張など、セキュリティ関連のライブラリが用意されています。これらをプロジェクトに追加することで、JWT認証やOAuth2、基本認証を簡単に使うことができます。

初心者でも、依存関係を追加して少し設定するだけで、ユーザー認証やアクセス制御を実現できる点がQuarkusの魅力です。

2. 認証の基本を理解する

2. 認証の基本を理解する
2. 認証の基本を理解する

認証は「誰がアクセスしているか」を確認する仕組みです。Quarkusでは、HTTP Basic認証やJWT認証がよく使われます。例えば、HTTP Basic認証はユーザー名とパスワードを使ったシンプルな認証方法です。


@ApplicationScoped
public class UserService {
    public boolean authenticate(String username, String password) {
        return "user".equals(username) && "pass".equals(password);
    }
}

この例では、固定のユーザー名とパスワードで認証を行っています。学習用として理解しやすい形です。

3. 認可の基本を理解する

3. 認可の基本を理解する
3. 認可の基本を理解する

認可は「認証済みユーザーがどの操作をできるか」を決める仕組みです。Quarkusでは、@RolesAllowedアノテーションを使って簡単に制御できます。


@Path("/admin")
public class AdminResource {
    @GET
    @RolesAllowed("admin")
    public String adminOnly() {
        return "管理者のみアクセス可能";
    }
}

ここでは、adminロールを持つユーザーだけがアクセスできるエンドポイントを作っています。

4. Quarkusのセキュリティ設定ファイル

4. Quarkusのセキュリティ設定ファイル
4. Quarkusのセキュリティ設定ファイル

Quarkusではapplication.propertiesにセキュリティ設定を記述します。たとえば、ユーザー名やパスワード、JWTの発行元などを設定できます。


quarkus.http.auth.permission.admin.paths=/admin/*
quarkus.http.auth.permission.admin.policy=roles
quarkus.security.users.embedded.enabled=true
quarkus.security.users.embedded.plain-text=true
quarkus.security.users.embedded.users.user=password
quarkus.security.users.embedded.roles.user=admin

これにより、adminエンドポイントへのアクセス制御が有効になります。

5. JWT認証の導入

5. JWT認証の導入
5. JWT認証の導入

QuarkusではJWTを使った認証も簡単に導入できます。JWTはユーザー情報を暗号化してトークンにしたものです。これを使うことで、セッション管理が不要になり、スケーラブルなアプリケーションを作れます。


@GET
@Path("/profile")
@RolesAllowed("user")
public String userProfile(@Context SecurityContext ctx) {
    return "Hello " + ctx.getUserPrincipal().getName();
}

JWTトークンが有効であれば、ユーザー名を取得して画面に表示できます。

6. セキュリティをテストする

6. セキュリティをテストする
6. セキュリティをテストする

Quarkusでは、REST APIのテスト時にもセキュリティを簡単に確認できます。例えば、REST-assuredを使って認証が正しく動作するかテストできます。


given()
    .auth().basic("user", "pass")
.when()
    .get("/admin")
.then()
    .statusCode(200);

正しいユーザーでアクセスできることを確認することで、セキュリティ設定が機能しているか検証できます。

7. Quarkusセキュリティのポイント

7. Quarkusセキュリティのポイント
7. Quarkusセキュリティのポイント

Quarkusでセキュリティを導入するときのポイントは、認証と認可を分けて考えることです。また、application.propertiesで簡単に設定できるため、開発者はコードと設定の両方で安全性を高めることができます。

さらに、JWTやOAuth2を活用すれば、クラウド環境やマイクロサービス間の認証もスムーズに行えます。初心者でも、まずはBasic認証やロールベースの認可から始めると理解しやすいです。

8. 実践的なサンプルまとめ

8. 実践的なサンプルまとめ
8. 実践的なサンプルまとめ

ここまでの内容を組み合わせると、Quarkusで簡単なセキュリティ付きアプリケーションを作ることができます。ユーザー認証、アクセス制御、JWT認証、設定ファイル、テストまで一通りの流れを学ぶことが可能です。


@Path("/hello")
public class HelloResource {
    @GET
    @RolesAllowed({"user", "admin"})
    public String hello(@Context SecurityContext ctx) {
        return "Hello " + ctx.getUserPrincipal().getName();
    }
}

このサンプルでは、userまたはadminロールを持つユーザーだけがアクセスできるエンドポイントを作っています。

カテゴリの一覧へ
新着記事
New1
Quarkus
Quarkusのフォーム認証を基礎から解説!初心者向けセキュリティ入門ガイド
New2
Micronaut
MicronautプロジェクトをGradleで管理する基礎!build.gradleの役割を解説
New3
Micronaut
LinuxでMicronautをセットアップする方法!パッケージ管理とGradle連携
New4
Java
Javaのswitch文を徹底解説!case・defaultの書き方と実例まとめ
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkusプロジェクト構成の基本を完全解説!初心者でも迷わない「どこに何を書くか」ガイド
No.2
Java&Spring記事人気No2
Quarkus
QuarkusとMicronautとHelidonを徹底比較!軽量Javaフレームワークの違いを初心者向けに解説
No.3
Java&Spring記事人気No3
Quarkus
Quarkusのセキュリティ基礎を初心者でもわかるように解説!
No.4
Java&Spring記事人気No4
Quarkus
Quarkusでマイクロサービス開発が加速する理由を徹底解説!Java初心者でも分かるクラウドネイティブ
No.5
Java&Spring記事人気No5
Quarkus
Quarkusの開発環境構築で躓きやすいポイントを完全解説!初心者でも安心して始めるためのチェックガイド
No.6
Java&Spring記事人気No6
Micronaut
MicronautとSpring Bootの違いとは?アーキテクチャ比較で速さの秘密を理解する
No.7
Java&Spring記事人気No7
Java
Javaのboolean型の使い方を完全ガイド!真偽値と条件分岐の基本
No.8
Java&Spring記事人気No8
Micronaut
MicronautのAOPが高速な理由とは?コンパイル時AOPの仕組みを初心者向けに徹底解説