4.4. Keycloak インテグレーション


Keycloak を使用して、Red Hat build of HawtIO コンソールを保護できます。Red Hat build of HawtIO を Keycloak と統合するには、次の操作が必要です。

  1. Keycloak サーバーを準備する
  2. お気に入りのランタイム (Quarkus、Spring Boot、WildFly、Karaf、Jetty、Tomcat など) に Red Hat build of HawtIO をデプロイし、認証に Keycloak を使用するように設定します。

4.4.1. Keycloak サーバーを準備する

Keycloak サーバーをインストールして実行します。最も簡単な方法は、Docker イメージ を使用することです。

docker run -d --name keycloak \
  -p 18080:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  quay.io/keycloak/keycloak start-dev

ここでは、他のアプリケーションが使用する可能性のあるポートとの潜在的な競合を回避するために、Keycloak サーバーのポート番号 18080 を使用します。

ユーザー admin/ パスワード admin を使用して、Keycloak 管理コンソール http://localhost:18080/admin/ にログインできます。hawtio-demo-realm.json を Keycloak にインポートします。これを行うには、Create Realm ボタンをクリックし、hawtio-demo-realm.json をインポートします。hawtio-demo レルムを作成します。

hawtio-demo レルムには、hawtio-client アプリケーションがパブリッククライアントとしてインストールされており、adminviewer などのいくつかのレルムロールが定義されています。これらのロールの名前は、デフォルトの Red Hat build of HawtIO ロールと同じで、Red Hat build of HawtIO 管理コンソールおよび JMX にログインできます。

以下のように、ユーザーも 3 種類あります。

admin
パスワード admin とロール admin が割り当てられた、Red Hat build of HawtIO にログインできるユーザー。
viewer
パスワード viewer とロール viewer が割り当てられた、Red Hat build of HawtIO にログインできるユーザー。
jdoe
パスワードが password で、ロールが割り当てられていないユーザーは、Red Hat build of HawtIO にログインできません。
注記

現在、HawtIO RBAC 機能はこれらのランタイムにまだ実装されていないため、ロールの違いは Quarkus と Spring Boot 上の Red Hat build of HawtIO アクセス権に影響はありません。

4.4.2. 設定

Red Hat build of HawtIO の Keycloak 統合の設定は、ランタイム (サーバー側) での Keycloak との統合と、HawtIO コンソール (クライアント側) での Keycloak との統合の 2 つの部分で構成されます。

各パーツごとに以下の設定を行う必要があります。

サーバー側
Keycloak アダプターのランタイム固有の設定
クライアント側の設定
Red Hat build of HawtIO Keycloak 設定の keycloak-hawtio.json

4.4.2.1. Quarkus

まず、Red Hat build of HawtIO を Quarkus アプリケーションに接続するために 必要な設定 を適用します。

Quarkus アプリケーションを Keycloak と統合するために必要なのは、Quarkus OIDC 拡張機能です。以下の依存関係を pom.xml に追加します。

pom.xml

<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-oidc</artifactId>
</dependency>

4.4.2.1.1. サーバー側

次に、application.properties (サーバー側の OIDC 拡張を設定する) に次の行を追加します。

application.properties

quarkus.oidc.auth-server-url = http://localhost:18080/realms/hawtio-demo
quarkus.oidc.client-id = hawtio-client
quarkus.oidc.credentials.secret = secret
quarkus.oidc.application-type = web-app
quarkus.oidc.token-state-manager.split-tokens = true
quarkus.http.auth.permission.authenticated.paths = "/*"
quarkus.http.auth.permission.authenticated.policy = authenticated

重要

quarkus.oidc.token-state-manager.split-tokens = true は重要です。そうしないと、大きなサイズのセッションの Cookie トークンの問題が発生し、Keycloak との統合に失敗する可能性があります。

4.4.2.1.2. クライアント側の設定

最後に、Quarkus アプリケーションプロジェクトの src/main/resources の下に keycloak-hawtio.json を作成します (これはクライアント側の Red Hat build of HawtIO JS 設定として機能します)。

keycloak-hawtio.json

{
  "realm": "hawtio-demo",
  "clientId": "hawtio-client",
  "url": "http://localhost:18080/",
  "jaas": false,
  "pkceMethod": "S256"
}

注記

Code Exchange Code Challenge Method の Proof Key 詳細設定に応じて、pkceMethodS256 に設定します。PKCE が有効になっていない場合は、このオプションを設定しないでください。

プロジェクトをビルドして実行すると、Keycloak と統合されます。

4.4.2.1.3. 例

実際の例は、quarkus-keycloak の例 を参照してください。

4.4.2.2. Spring Boot

まず、Red Hat build of HawtIO を Spring Boot アプリケーションに接続するために 必要な設定 を適用します。

Spring Boot アプリケーションを Keycloak と統合するには、pom.xml に次の依存関係を追加する必要があります (4.xy は、最新の Red Hat build of HawtIO リリースバージョンに置き換えます)。

pom.xml

<dependency>
  <groupId>io.hawt</groupId>
  <artifactId>hawtio-springboot-keycloak</artifactId>
  <version>4.x.y</version>
</dependency>

4.4.2.2.1. サーバー側

次に、application.properties (サーバー側の Keycloak アダプターを設定する) に次の行を追加します。

application.properties

keycloak.realm = hawtio-demo
keycloak.resource = hawtio-client
keycloak.auth-server-url = http://localhost:18080/
keycloak.ssl-required = external
keycloak.public-client = true
keycloak.principal-attribute = preferred_username

4.4.2.2.2. クライアント側の設定

最後に、Spring Boot プロジェクトの src/main/resources の下に keycloak-hawtio.json を作成します (これはクライアント側の Red Hat build of HawtIO JS 設定として機能します)。

keycloak-hawtio.json

{
  "realm": "hawtio-demo",
  "clientId": "hawtio-client",
  "url": "http://localhost:18080/",
  "jaas": false
}

プロジェクトをビルドして実行すると、Keycloak と統合されます。

4.4.2.2.3. 例

作業例は、springboot-keycloak の例 を参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る