第10章 送信要求用の信頼済み証明書の設定
Red Hat build of Keycloak が TLS 経由で外部サービスと通信する場合、信頼済みサーバーに接続していることを確認するためにリモートサーバーの証明書を検証する必要があります。これは、中間者攻撃を防ぐために必要です。これらの証明書を署名したこれらのリモートサーバーまたは CA の証明書はトラストストアに配置する必要があります。このトラストストアは Keycloak サーバーによって管理されます。
トラストストアは、アイデンティティーブローカー、LDAP アイデンティティープロバイダーに安全を接続する際に使用され、電子メールの送信時やクライアントアプリケーションとのバックチャネル通信に使用されます。これは、サーバーによるホスト名の検証および信頼方法に関するポリシーを変更する場合にも役立ちます。
デフォルトでは、トラストストアプロバイダーは設定されておらず、TLS/HTTPS 接続は標準の Java Truststore 設定にフォールバックします。信頼が確立されていない場合、これらの送信 HTTPS 要求は失敗します。
10.1. Red Hat build of Keycloak Truststore の設定
次のコマンドを入力して、トラストストアの設定を追加できます。
bin/kc.[sh|bat] start --spi-truststore-file-file=myTrustStore.jks --spi-truststore-file-password=password --spi-truststore-file-hostname-verification-policy=ANY
bin/kc.[sh|bat] start --spi-truststore-file-file=myTrustStore.jks --spi-truststore-file-password=password --spi-truststore-file-hostname-verification-policy=ANY
この設定では、次の設定オプションを使用できます。
- file
- Java キーストアファイルへのパス。TLS 要求には、通信しているサーバーのホストを検証する方法が必要です。これは、トラストストアが行なうことです。キーストアには、1 つ以上の信頼できるホスト証明書または認証局が含まれます。このトラストストアファイルには、セキュアなホストのパブリック証明書のみを含める必要があります。これは、上記のプロパティーのいずれかが定義されている場合には 必須 です。
- password
- KeyStore のパスワード。このオプションは、上記のプロパティーのいずれかが定義されている場合は 必須 です。
- hostname-verification-policy
HTTPS 要求の場合、このオプションでサーバーの証明書のホスト名が検証されます。デフォルト:
WILDCARD
-
ANY
に設定すると、ホスト名が検証されません。 -
WILDCARD
は、*.foo.com などのサブドメイン名のワイルドカードを許可します。 STRICT
を使用する場合、Common Name (CN) はホスト名と正確に一致する必要があります。この設定は、厳密なホスト名チェックを必要とする LDAP セキュア接続には適用されないことに注意してください。
-
- type
-
トラストストアのタイプ (
jks
、pkcs12
、bcfks
など)。指定しない場合、トラストストアのファイル拡張子またはデフォルトのプラットフォームタイプに基づきタイプが検出されます。
10.1.1. トラストストア設定の例
以下は、すべての mycompany.org
ドメインとそのサブドメインへの信頼できる接続を作成できるトラストストアの設定例です。
bin/kc.[sh|bat] start --spi-truststore-file-file=path/to/truststore.jks --spi-truststore-file-password=change_me --spi-truststore-file-hostname-verification-policy=WILDCARD
bin/kc.[sh|bat] start --spi-truststore-file-file=path/to/truststore.jks --spi-truststore-file-password=change_me --spi-truststore-file-hostname-verification-policy=WILDCARD