7.5. リバースプロキシーの使用
プロキシーが http または再暗号化 TLS リクエストを転送する場合は、proxy-headers
オプションを設定する必要があります。ホスト名の設定によっては、URL の一部またはすべてが動的に決定できます。
forwarded
または xforwarded
のいずれかを選択した場合は、リバースプロキシーによって Forwarded
または X-Forwarded-*
ヘッダーが適切に設定して上書きされることを確認してください。これらのヘッダーを設定するには、リバースプロキシーのドキュメントを参照してください。設定を誤ると、Red Hat build of Keycloak がセキュリティー上の脆弱性にさらされることになります。
7.5.1. 完全な動的 URL。
たとえば、リバースプロキシーが Forwarded ヘッダーを正しく設定し、ホスト名をハードコーディングしたくない場合は、Red Hat build of Keycloak がこれに対応します。次のようにサーバーを起動する必要があるだけです。
bin/kc.[sh|bat] start --hostname-strict false --proxy-headers forwarded
この設定では、サーバーは Forwarded ヘッダーによって設定された値を尊重します。これは、すべてのエンドポイントが動的に解決されることを意味します。
7.5.2. 部分的な動的 URL
proxy-headers
オプションは、hostname
オプションが完全な URL として指定されていない場合に URL の一部を動的に解決するためにも使用できます。以下に例を示します。
bin/kc.[sh|bat] start --hostname my.keycloak.org --proxy-headers xforwarded
この場合、スキーム、ポート、およびコンテキストパスは X-Forwarded-* ヘッダーから動的に解決され、ホスト名は my.keycloak.org
として静的に定義されます。
7.5.3. 固定 URL
ヘッダーはリクエストの発信元を判別するために使用されるため、ホスト
名が完全な URL に設定されている場合でも、proxy-headers
は関連します。以下に例を示します。
bin/kc.[sh|bat] start --hostname https://my.keycloak.org --proxy-headers xforwarded
この場合、X-Forwarded-* ヘッダーから動的に解決されることはありませんが、X-Forwarded-* ヘッダーを使用して要求の正しい発信元を判別します。