bin/kc.[sh|bat] build --vault=file
Keycloak は、Vault SPI の 2 つの既成実装を提供します。プレーンテキストのファイルベースの Vault と Java KeyStore ベースの Vault です。
ファイルベースの Vault 実装は、特に Kubernetes/OpenShift シークレットに役立ちます。Kubernetes シークレットを Keycloak コンテナにマウントすると、データフィールドはフラットファイル構造でマウントされたフォルダーで使用できるようになります。
Java KeyStore ベースの Vault 実装は、ベアメタルインストールでシークレットを保存するのに役立ちます。パスワードで暗号化された KeyStore Vault を使用できます。
Vault に保存されたシークレットは、管理コンソールの次の場所で使用できます。
SMTP メールサーバーのパスワードを取得する
LDAP ベースのユーザーフェデレーションを使用する際に LDAP バインドクレデンシャルを取得する
外部アイデンティティプロバイダーを統合する際に OIDC アイデンティティプロバイダーのクライアントシークレットを取得する
ファイルベースの Vault を有効にするには、次のビルドオプションを使用して Keycloak を最初にビルドする必要があります。
bin/kc.[sh|bat] build --vault=file
同様に、Java KeyStore ベースの Vault の場合は、次のビルドオプションを指定する必要があります。
bin/kc.[sh|bat] build --vault=keystore
Java KeyStore ベースの Vault を使用するには、最初に KeyStore ファイルを作成する必要があります。これを行うには、次のコマンドを使用できます。
keytool -importpass -alias <realm-name>_<alias> -keystore keystore.p12 -storepass keystorepassword
次に、Vault に保存する値を入力します。-alias
パラメーターの形式は、使用されるキーリゾルバーによって異なることに注意してください。デフォルトのキーリゾルバーは REALM_UNDERSCORE_KEY
です。
これにより、デフォルトで SecretKeyEntry 内に汎用 PBEKey (パスワードベースの暗号化) の形式で値が保存されます。
その後、次のランタイムオプションを使用して Keycloak を起動できます。
bin/kc.[sh|bat] start --vault-file=/path/to/keystore.p12 --vault-pass=<value> --vault-type=<value>
--vault-type
パラメーターはオプションであり、デフォルトは PKCS12
であることに注意してください。
Vault に保存されたシークレットは、レルム内で次のプレースホルダーを介してアクセスできます (REALM_UNDERSCORE_KEY
キーリゾルバーを使用していると仮定)。${vault.realm-name_alias}
。
シークレットを正しく処理するには、<secretname> 内のすべてのアンダースコアを二重にします。REALM_UNDERSCORE_KEY
キーリゾルバーを使用する場合、<realmname> 内のアンダースコアも二重になり、<secretname> と <realmname> は単一のアンダースコアで区切られます。
レルム名: sso_realm
希望する名前: ldap_credential
結果のファイル名
sso__realm_ldap__credential
sso と realm の間、および ldap と credential の間の二重アンダースコアに注意してください。
キーリゾルバーの詳細については、サーバー管理ガイドのキーリゾルバーセクションを参照してください。