第6章 リバースプロキシーの使用
分散環境では、頻繁にリバースプロキシーの使用が必要になります。Red Hat build of Keycloak は、このような環境とのセキュアな統合を実現するためのオプションをいくつか備えています。
6.1. リバースプロキシーヘッダーの設定
Red Hat build of Keycloak は、proxy-headers
オプションに基づいてリバースプロキシーヘッダーを解析します。このオプションは、次のいくつかの値を受け入れます。
- デフォルトでは、オプションが指定されていない場合、リバースプロキシーヘッダーは解析されません。
-
forwarded
は、RFC7239 に従ってForwarded
ヘッダーの解析を有効にします。 -
xforwarded
は、X-Forwarded-For
、X-Forwarded-Proto
、X-Forwarded-Host
、X-Forwarded-Port
などの非標準のX-Forwarded-*
ヘッダーの解析を有効にします。
以下に例を示します。
bin/kc.[sh|bat] start --proxy-headers forwarded
forwarded
または xforwarded
のいずれかを選択した場合は、リバースプロキシーによって Forwarded
または X-Forwarded-*
ヘッダーが適切に設定して上書きされることを確認してください。これらのヘッダーを設定するには、リバースプロキシーのドキュメントを参照してください。設定を誤ると、Red Hat build of Keycloak がセキュリティー上の脆弱性にさらされることになります。
クライアントアドレスが、リバースプロキシーにより Forwarded
ヘッダーまたは X-Forwarded-For
ヘッダーを介して適切に設定されていることを、特に注意して確認してください。このヘッダーが正しく設定されていない場合、不正なクライアントがこのヘッダーを設定し、クライアントが実際のアドレスとは異なる IP アドレスから接続しているという誤った認識を Red Hat build of Keycloak が持つ可能性があります。IP アドレスの拒否リストまたは許可リストを作成する場合、このような注意はさらに重要です。
xforwarded
設定を使用する場合、X-Forwarded-Port
は X-Forwarded-Host
に含まれるポートよりも優先されます。