IDアクセス管理ツール「Keycloak」で実際にユーザー認証を試してみよう

2025年11月6日(木)
黒坂 達也
第2回の今回は、IDアクセス管理を実現するOSS「Keycloak」の導入方法と、基本的なユーザ認証のための設定方法について解説します。

はじめに

第1回となる前回は、MCPの概要と、その認証/認可の仕組みについて解説しました。第2回となる今回は、IDアクセス管理を実現するOSSである「Keycloak」の導入方法と、基本的なユーザ認証を行うための設定方法について解説します。

Keycloakの導入

Keycloakの公式ドキュメントにはコンテナ環境への導入方法も記載されていますが、今回は手元の物理マシンに導入します。なお、筆者のPCはWindowsなので、ここではWindowsに導入する方法を解説します。上記の公式ドキュメントに記載されている手順に沿って導入していきます。

<筆者の環境>
  • Windows 11 Enterprise
  • OpenJDK 24
  • Keycloak 26.3.3
  1. KeycloakはJavaで実装されているため、Javaの実行環境が必要になります。ドキュメントの記載に従ってOpenJDKから最新バージョン(執筆時点ではバージョン24)をインストールします。

    Windows向けのzipファイルをダウンロードしたら、解凍して任意の場所にファイルを配置してください。

    図1:C:\Program Files\Java\配下にjdk-24を配置した例

  2. 環境変数を設定します。「コントロールパネル」>「システム」>「システムの詳細設定」の順に選択して「システムのプロパティ」画面を開き、「詳細設定」タブから「環境変数」を選択し「環境変数」画面を開きます。

    「システム環境変数」で「新規」を選択して「変数名」に"JAVA_HOME"、「変数値」にOpenJDKを配置したディレクトリを入力し、追加します。

    図2:システム環境変数”JAVA_HOME”の追加

  3. 「システム環境変数」に登録されている「Path」をダブルクリックし、「新規」を選択して“%JAVA_HOME%\bin”を追加します。

    図3:Pathへ“%JAVA_HOME%\bin”を追加

    コマンドプロンプトを起動し、%JAVA_HOME%の内容を確認します。2行目のような結果が返ってくれば、無事にパスが通っています。“%JAVA_HOME%”がそのまま返ってくる場合はパスが通っていないので、PCを再起動して再度結果を確認してみてください。
    echo %JAVA_HOME%
    C:\Program Files\Java\jdk-24
  4. Keycloakをインストールします。公式ドキュメントのリンクよりzipファイルをダウンロードして、解凍したら任意の場所にファイルを配置します。

    図4:C:\Keycloak\配下に配置した例

    上記フォルダ(C:\Keycloak\keycloak-26.3.3)からコマンドプロンプトで以下のコマンドを実行し、開発モードでKeycloakを実行します。
    bin\kc.bat start-dev
    ※上記のように、“start-dev”オプションを使用するとKeycloakが開発モードで起動します。開発モードで起動することにより、ローカルでKeycloakの動作を素早く確認するための設定やテーマ開発に便利な設定がデフォルトで適用されます。

    正常に起動した場合、以下のようなメッセージが表示されます。
    2025-08-25 14:16:11,014 INFO  [io.quarkus] (main) Keycloak 26.3.3 on JVM (powered by Quarkus 3.20.2.1) started in 32.600s. Listening on: http://0.0.0.0:8080
  5. 任意のウェブブラウザでhttp://localhost:8080へアクセスし、Keycloakが動作していることを確認します。

    図5:初回アクセス時の画面

  6. 任意のUsernameとPasswordを入力し、管理ユーザを作成します。

    図6:管理ユーザ作成完了

以上で、Keycloakのインストールは完了です。

レルム・ユーザ設定

次に、Keycloakの管理コンソールから基本的な設定を行っていきます。

  1. http://localhost:8080/adminにアクセスし、作成した管理ユーザでログインしましょう。

    図7:管理コンソールのトップ画面

  2. 左ペインの“Manage realms”→“Create realm”をクリック後、“Realm name”欄に任意のレルム名を入力し、“Create”をクリックして新規レルムを作成します。

    レルムとは、ユーザやクライアント、認証方法などの各種設定が適用される範囲を意味します。Keycloakは初回起動時に“master”という名前のレルムを作成しますが、これは他のレルムを管理できる特別なレルムです。ここでは、動作確認用のレルムとしてmasterレルムとは別のレルムを作成しましょう。

    図8:レルム作成

  3. ユーザを作成します。“Current realm”欄より先ほど作成したレルムにいることを確認したあと、左ペインの“Users”→“Create new user”をクリックし、“Username”欄、“Email”欄、“First name”欄、“Last name”欄に任意の値を入力して“Create”をクリックすると新規ユーザが作成されます。

    図9:ユーザ作成

  4. Keycloakはパスワード認証・パスキー認証・ワンタイムパスワードを用いた多要素認証など様々な認証機能を持っています。今回はパスワード認証の動作確認を行うので、作成したユーザが利用するパスワードを設定しましょう。

    作成したユーザが表示された状態で“Credentials”タブ→“Set password”をクリックし、任意のパスワードを入力後“Save”をクリックしてパスワードを設定します。なお、ログイン後のパスワード再設定の手間を省くために“Temporary”はOffにします。

    図10:パスワード設定

ユーザ認証の動作確認

それでは、作成したユーザを用いて、ユーザ認証の動作確認を行います。

まずは、アカウントコンソールにアクセスしてみましょう。アカウントコンソールではプロファイルの変更、認証器の追加、外部IDプロバイダーとの連携など、ユーザ自身がアカウントの管理を行うことができます。

  1. Webブラウザでhttp://localhost:8080/realms/<作成したレルム名> /accountにアクセスするとログイン画面が開くので、作成したユーザ情報でログインします。

    図11:ログイン画面

  2. ログインに成功すると、アカウントコンソールが表示されます。

    図12:アカウントコンソール

  3. KeycloakのWeb上で公開されているSPA(Single Page Application)を用いて、ユーザ認証の動作確認を行ってみましょう。

    まず、使用するアプリケーションをKeycloakのクライアントとして登録します。管理コンソール(http://localhost:8080/admin)にアクセスし、作成したレルムに移動します。左ペインでCurrent realmが作成したレルムになっていることを確認してください。

    図13:管理コンソール

  4. 左ペインから“Clients”→“Create client”をクリックします。General settings画面ではClient typeに“OpenID Connect”を選択し、ClientID欄に任意のクライアント名を入力してNextをクリックします。

    図14:General settings画面

  5. Capability config画面では、Authentication flowで“Standard flow”にチェックが入っていることを確認し、Nextをクリックします。

    図15:Capability config画面

  6. Login settings画面では、Set Valid redirect URIsに“https://www.keycloak.org/app/*”、Web originsに“https://www.keycloak.org”を入力し、Saveをクリックします。

    図16:Login settings画面

  7. これで準備は完了です。実際にユーザ認証の動作確認をしてみましょう。WebブラウザでSPAのURL(https://www.keycloak.org/app/)にアクセスし、Keycloak URL・Realm・Clientに自身の環境に応じた値を入力してSaveをクリックします。

    図17:SPAのトップページ

  8. 次の画面で、Sign inをクリックします。

    図18:Save後の画面

  9. ログイン画面が表示されるので、登録したユーザ情報でログインします。

    図19:ログイン画面

  10. 認証に成功すると、以下のようにHello, <First name> <Last name>と表示されます。

    図20:ユーザ認証成功時の画面

  11. Sign outボタンをクリックするとログアウトされ、再度Sign inボタンをクリックするとログインを要求されます。

    図21:Sign outクリック後の画面

以上で、SPAを用いたユーザ認証の動作確認は終了です。

まとめ

本稿では、Keycloakの導入方法と基本的な設定・ユーザ認証の動作確認を実施する方法について解説しました。KeycloakはオープンソースのIAMソリューションなので、誰でも簡単に導入できます。管理コンソールも直観的で使いやすく、利便性の高さを実感いただけたと思います。

次回は、認証/認可の標準プロトコルの1つである「OAuth2.1」の認可コードフローを自前のWebアプリケーションとKeycloakを用いて実装する方法について、ハンズオン形式で解説していきます。

株式会社日立製作所
OSSソリューションセンタにて、認証・認可向けOSSの普及および導入支援に従事。KubeCon・LF AI & Data Day等のイベントでMCPセキュリティに関する講演も行っている。
LinkedIn: https://www.linkedin.com/in/tkurosaka

連載バックナンバー

セキュリティ技術解説
第2回

IDアクセス管理ツール「Keycloak」で実際にユーザー認証を試してみよう

2025/11/6
第2回の今回は、IDアクセス管理を実現するOSS「Keycloak」の導入方法と、基本的なユーザ認証のための設定方法について解説します。
セキュリティ技術解説
第1回

「MCP」とは何か ーMCPにおける認証/認可の仕組みを理解しよう

2025/9/18
第1回の今回は「MCP」の概要と、その認証/認可の仕組みについて解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています