検索

第13章 Vault を使用したシークレットの取得

download PDF

Red Hat build of Keycloak は現在、プレーンテキストファイルベースの Vault と Java KeyStore ベースの Vault という、すぐに使用できる Vault SPI の実装を 2 つ提供しています。

直接入力せずに Vault からシークレットを取得するには、以下の特別に作成された文字列を適切なフィールドに入力します。

${vault.key}

key は vault によって認識されたシークレットの名前です。

レルム間でシークレットのリークを防ぐために、Red Hat build of Keycloakk はレルム名と vault 式から取得した key を組み合わせます。このメソッドは、キー が vault のエントリーに直接マップされるのではなく、key をレルム名と組み合わせるために使用されるアルゴリズムに従って最終的なエントリー名を作成します。ファイルベースの Vault の場合、そのような組み合わせは特定のファイル名に反映されます。Java KeyStore ベースの Vault の場合、それは特定のエイリアス名になります。

以下のフィールドの vault からシークレットを取得できます。

SMTP パスワード
レルム SMTP 設定
LDAP バインド認証情報
LDAP ベースのユーザーフェデレーションの LDAP 設定
OIDC アイデンティティープロバイダーシークレット
アイデンティティープロバイダー OpenID Connect Config 内の クライアントシークレット

13.1. キーリゾルバー

すべての組み込みプロバイダーはキーリゾルバーの設定をサポートします。キーリゾルバーは、レルム名とキーを組み合わせて (${vault.key} 式から取得)、vault からシークレットの取得に使用される最終エントリー名を組み合わせるためのアルゴリズムまたはストラテジーを実装します。Red Hat build of Keycloak は、keyResolvers プロパティーを使用して、プロバイダーが使用するリゾルバーを設定します。この値は、リゾルバー名のコンマ区切りリストです。files-plaintext プロバイダーの設定例を以下に示します。

kc.[sh|bat] start --spi-vault-file-key-resolvers=REALM_UNDERSCORE_KEY,KEY_ONLY

リゾルバーは、設定で宣言するのと同じ順序で実行されます。Red Hat build of Keycloak は、リゾルバーが生成する最後のエントリー名を使用し、レルムと vault キーを組み合わせて vault のシークレットを検索します。Red Hat build of Keycloak がシークレットを見つけると、そのシークレットを返します。そうでない場合、Red Hat build of Keycloak は次のリゾルバーを使用します。この検索は、Red Hat build of Keycloak が空ではないシークレットを見つけるか、リゾルバーがなくなるまで続行されます。Red Hat build of Keycloak がシークレットを見つけられない場合、Red Hat build of Keycloak は空のシークレットを返します。

前の例では、Red Hat build of Keycloak は最初に REALM_UNDERSCORE_KEY リゾルバーを使用します。Red Hat build of Keycloak がそのリゾルバーを使用しているエントリーを Vault 内で見つけた場合、Red Hat build of Keycloak はそのエントリーを返します。そうでない場合、Red Hat build of Keycloak は KEY_ONLY リゾルバーを使用して再度検索します。Red Hat build of Keycloak が KEY_ONLY リゾルバーを使用してエントリーを見つけた場合、Red Hat build of Keycloak はそのエントリーを返します。Red Hat build of Keycloak がすべてのリゾルバーを使用すると、Red Hat build of Keycloak は空のシークレットを返します。

現在利用可能なリゾルバーのリストは以下のようになります。

名前説明

KEY_ONLY

Red Hat build of Keycloak はレルム名を無視し、Vault 式のキーを使用します。

REALM_UNDERSCORE_KEY

Red Hat build of Keycloak は、アンダースコア文字を使用してレルムとキーを組み合わせます。Red Hat build of Keycloak は、レルムまたはキーでのアンダースコアの出現を別のアンダースコア文字でエスケープします。たとえば、レルムが master_realm と呼ばれ、キーが smtp_key の場合は、組み合わせたキーは master__realm_smtp__key になります。

REALM_FILESEPARATOR_KEY

Red Hat build of Keycloak は、プラットフォームファイル区切り文字を使用してレルムとキーを組み合わせます。

ビルトインプロバイダーのリゾルバーを設定していない場合、Red Hat build of Keycloak は REALM_UNDERSCORE_KEY を選択します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.