1.2. 設定用の形式
この設定では、ソースごとに統一された 形式が使用されており、キー/値ペアの、ある設定ソースから別の設定ソースへの変換が簡素化されます。この形式は spi オプションにも適用されることに注意してください。
- コマンドラインパラメーターの形式
-
コマンドラインの値には、
--<key-with-dashes>=<value>
の形式が使用されます。一部の値は、-<abbreviation>=<value>
の省略表現もあります。 - 環境変数の形式
-
環境変数の値には、大文字の
KC_<key_with_underscores>=<value>
形式が使用されます。 - 設定ファイルの形式
-
設定ファイルに格納される値には、
<key-with-dashes>=<value>
形式が使用されます。 - KeyStore 設定ファイルの形式
-
KeyStore 設定ファイルに格納される値には、
kc.<key-with-dashes>
形式が使用されます。<value>
は、KeyStore に保存されているパスワードです。
設定の各章の最後で、該当する設定形式を定義する 関連オプション の見出しを探してください。すべての設定オプションについては、すべての設定 を参照してください。ユースケースに適用できる設定ソースと形式を選択します。
1.2.1. 例 - 設定ソースに基づく代替形式
次の例は、3 つの設定ソースにおける db-url-host
の設定形式を示しています。
コマンドラインパラメーター
bin/kc.[sh|bat] start --db-url-host=mykeycloakdb
環境変数
export KC_DB_URL_HOST=mykeycloakdb
conf/keycloak.conf
db-url-host=mykeycloakdb
1.2.2. コマンドラインパラメーターの形式
Red Hat build of Keycloak には、設定用の多くのコマンドラインパラメーターが同梱されています。使用可能な設定形式を確認するには、次のコマンドを入力します。
bin/kc.[sh|bat] start --help
もしくは、すべての設定 ですべてのサーバーオプションを確認できます。
1.2.3. 環境変数の形式
${ENV_VAR}
構文を使用することで、keycloak.conf
ファイル内の環境変数から環境固有の値をプレースホルダーを使用して解決できます。
db-url-host=${MY_DB_HOST}
環境変数を解決できない場合は、フォールバック値を指定できます。ここで示すとおり、mydb
の前に :
(コロン) を使用します。
db-url-host=${MY_DB_HOST:mydb}
1.2.4. 特定の設定ファイルを含める形式
デフォルトでは、サーバーは常に conf/keycloak.conf
ファイルから設定オプションを取得します。新規インストールの場合、このファイルには、実稼働環境で実行する際の設定案がコメントとして格納されているだけです。
次のコマンドを入力し、[-cf|--config-file]
オプションを使用して設定ファイルの場所を明示的に指定することもできます。
bin/kc.[sh|bat] --config-file=/path/to/myconfig.conf start
このオプションを設定すると、Red Hat build of Keycloak は conf/keycloak.conf
ではなく指定されたファイルから設定を読み取ります。
1.2.5. Java KeyStore ファイルを使用して機密オプションを設定する
KeyStore 設定ソースにより、[--config-keystore]
および [--config-keystore-password]
オプションを使用して Java KeyStore からプロパティーを直接ロードできます。必要に応じて、[--config-keystore-type]
オプションを使用して KeyStore タイプを指定できます。デフォルトの KeyStore タイプは PKCS12
です。
KeyStore 内のシークレットは、PBE
(パスワードベースの暗号化) キーアルゴリズムを使用して保存する必要があります。この場合のキーは、KeyStore のパスワードから導出します。次の keytool
コマンドを使用して、このような KeyStore を生成できます。
keytool -importpass -alias kc.db-password -keystore keystore.p12 -storepass keystorepass -storetype PKCS12 -v
コマンドを実行すると、Enter the password to be stored というプロンプトが表示されます。これは、上記の kc.db-password
プロパティーの値を表します。
KeyStore が作成されると、次のパラメーターを使用してサーバーを起動できます。
bin/kc.[sh|bat] start --config-keystore=/path/to/keystore.p12 --config-keystore-password=storepass --config-keystore-type=PKCS12
1.2.6. raw Quarkus プロパティーの形式
ほとんどの場合、使用可能な設定オプションでサーバーを設定できます。ただし、Red Hat build of Keycloak 設定に欠けている特定の動作または機能については、基礎となる Quarkus フレームワークのプロパティーを使用できます。
可能であれば、Quarkus から直接プロパティーを使用することは避けてください。それらは Red Hat build of Keycloak でサポートされていません。どうしても必要な場合は、まず 機能拡張リクエスト を作成することを検討してください。このアプローチは、ニーズに合わせて Red Hat build of Keycloak の設定を改善するのに役立ちます。
拡張リクエストが不可能な場合は、raw Quarkus プロパティーを使用してサーバーを設定できます。
-
conf
ディレクトリーに、quarkus.properties
ファイルを作成します。 そのファイルで、必要なプロパティーを定義します。
Quarkus ドキュメント で定義されている Quarkus 拡張機能の サブセット のみ使用できます。以下に示す、Quarkus プロパティーの違いにも注意してください。
-
Quarkus ドキュメント に示される Quarkus プロパティーの鍵アイコンは、ビルド時のプロパティーを表しています。このプロパティーを適用するには、
build
コマンドを実行します。ビルドコマンドの詳細は、Red Hat build of Keycloak の最適化に関する後続セクションを参照してください。 - Quarkus ガイドの鍵アイコンがないプロパティーは、Quarkus および Red Hat build of Keycloak のランタイムプロパティーです。
-
Quarkus ドキュメント に示される Quarkus プロパティーの鍵アイコンは、ビルド時のプロパティーを表しています。このプロパティーを適用するには、
-
[-cf|--config-file]
コマンドラインパラメーターを使用して、そのファイルを含めます。
同様に、Quarkus プロパティーを Java KeyStore に保存することもできます。
quarkus.http.port
や同様の必須プロパティーなど、一部の Quarkus プロパティーはすでに Red Hat build of Keycloak 設定にマップされていることに注意してください。プロパティーが Red Hat build of Keycloak によって使用されている場合、quarkus.properties
でそのプロパティーキーを定義しても効果はありません。Red Hat build of Keycloak の設定値は、Quarkus のプロパティー値よりも優先されます。
1.2.7. 値に特殊文字を使用する
Red Hat build of Keycloak は、Quarkus と MicroProfile に依存して設定値を処理します。評価式がサポートされていることに注意してください。たとえば、${some_key}
は some_key
の値と評価されます。
式の評価を無効にするには、\
文字をエスケープ文字として使用します。特に、$
で式を定義する場合や $ が繰り返し現れる場合、\ によって $ の使用をエスケープする必要があります。たとえば、設定値 my$$password
が必要な場合は、代わりに my\$\$password
を使用します。ほとんどの Unix シェルを使用する場合、またはプロパティーファイルに現れる場合は、\
文字を追加でエスケープするか、引用符で囲む必要があることに注意してください。たとえば、bash で一重引用符を使用すると、単一のバックスラッシュ --db-password='my\$\$password'
が保持されます。また、bash で二重引用符を使用する場合は、バックスラッシュがもう 1 つ --db-password="my\\$\\$password"
が必要です。同様に、プロパティーファイルでも、バックスラッシュ文字をエスケープする必要があります (kc.db-password=my\\$\\$password
)。