コンテンツにスキップ

設定ファイル@Keycloak

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. 設定方法

Keycloakでは、コマンドオプション、環境変数、keycloak.confファイルのいずれかでパラメーターを設定できる。


02. keycloak.conf

db=postgres


03. 環境変数

Bootstrap Admin

変数 値の例 説明
KC_BOOTSTRAP_ADMIN_USERNAME admin Keycloakのルートユーザー名を設定する。
KC_BOOTSTRAP_ADMIN_PASSWORD admin Keycloakのルートユーザーのパスワードを設定する。


Cache

変数 値の例 説明
KC_CACHE ispn セッションデータ管理の仕組みを設定する。例えばispnの場合、KeycloakクラスターでInfinispanを使用する。
KC_CACHE_STACK kubernetes Keycloakクラスター内のクラスターインスタンス間の通信方法を設定する。例えばkubernetesの場合、KeycloakクラスターでKubernetesによる通信を使用する。


Database

▼ Databaseとは

認証情報のDB (例:MySQL、PostgreSQLなど) を使用できる。

Keycloakと各DBのバージョンの相性を確認しておく必要がある。

変数 値の例 説明
KC_DB mysql Keycloakで使用するDBベンダーを設定する。 開発環境では、dev-fileとするとファイルシステムを使用できる。
KC_DB_URL jdbc:mysql://<ホスト名>:3306/<DB名>
KC_DB_URL_DATABASE keycloak
KC_DB_USERNAME keycloak
KC_DB_PASSWORD password


HTTP

変数 値の例 説明
KC_HTTP_RELATIVE_PATH / Keycloakの認証エンドポイントのプレフィクスを設定する。


Hostname

変数 値の例 説明
KC_HOSTNAME localhost (Dockerの場合) Keycloakのエンドポイントのホスト名を設定する。各種認証エンドポイント全体のホスト名に影響する。Kubernetes内にKeycloakを置く場合、これは設定しない。


Logging

変数 値の例 説明
KC_LOG_LEVEL debug Keycloakのログレベルを設定する。


Proxy

変数 値の例 説明
KC_PROXY edge Keycloalyがリバースプロキシを後ろにあること有効化する。Kubernetesではこれをedgeを設定する必要がある。


JAVA_OPTS_APPEND

変数 値の例 説明
-Djgroups.dns.query <KeycloakクラスターのService名>.<Namespace名>.svc.cluster.local Keycloakクラスター内のKeycloakクラスターインスタンスを返却するDNSを設定する。
-Djava.net.preferIPv4Stack true


AUTH_SESSION_ID

Keycloakのログイン後、Cookieヘッダーによって運搬されるセッションデータである。

<セッションID>.keycloak-0-27504の形式になる。


KEYCLOAK_IDENTITY

アクセストークンである。

JWTのサイトでデコードすると、中身を確認できる。

{"alg": "HS512", "typ": "JWT", "kid": "*****"}
{
  "exp": 1739761077,
  "iat": 1739725077,
  "jti": "*****",
  "iss": "http://localhost:8080/realms/<Realm名>",
  "sub": "*****",
  "typ": "Serialized-ID",
  "sid": "*****",
  "state_checker": "*****",
}


KEYCLOAK_SESSION


05. JSON

Realmをインポートすることにより、設定を宣言的に定義できる。

ファイルが大きいので、ここで に設定ファイルの例を置いている