5.2. シナリオ例
以下に、ホスト名を設定する別のサンプルシナリオと、対応するコマンドを示します。
start
コマンドには TLS の設定が必要であることに注意してください。対応するオプションは例として示されていません。詳細は、TLS の設定 を参照してください。
5.2.1. TLS Termination プロキシーの背後にあるサーバーを公開する
この例では、サーバーは TLS Termination プロキシーの背後で実行されており、https://mykeycloak
から公開されています。
設定:
bin/kc.[sh|bat] start --hostname=mykeycloak --http-enabled=true --proxy-headers=forwarded|xforwarded
5.2.2. プロキシーを使用せずにサーバーを公開する
この例では、サーバーはプロキシーなしで実行されており、HTTPS を使用して URL で公開されています。
Red Hat build of Keycloak の設定:
bin/kc.[sh|bat] start --hostname-url=https://mykeycloak
セキュリティーと可用性の観点から、サーバーの前で TLS Termination プロキシーを使用することが強く推奨されます。詳細は、リバースプロキシーの使用 を参照してください。
5.2.3. バックエンドのエンドポイントに、サーバーが公開されているのと同じ URL を使用するように強制する
この例では、サーバーが使用するのと同じ URL を使用してバックエンドエンドポイントが公開されているため、クライアントは要求の送信元に関係なく常に同じ URL を取得します。
Red Hat build of Keycloak の設定:
bin/kc.[sh|bat] start --hostname=mykeycloak --hostname-strict-backchannel=true
5.2.4. デフォルトポート以外のポートを使用してサーバーを公開する
この例では、デフォルトポート以外のポートを使用してサーバーにアクセスできます。
Red Hat build of Keycloak の設定:
bin/kc.[sh|bat] start --hostname-url=https://mykeycloak:8989
5.2.5. 異なるポートを使用して、TLS 再暗号化プロキシーの背後で Red Hat build of Keycloak を公開する
この例では、サーバーはプロキシーの背後で実行されており、サーバーとプロキシーの両方が独自の証明書を使用しているため、Red Hat build of Keycloak とプロキシー間の通信は暗号化されます。リバースプロキシーは Forwarded
ヘッダーを使用し、X-Forwarded-*
ヘッダーを設定しません。プロキシー設定オプション (およびホスト名設定オプション) は、サーバーが実際にリッスンしているポートを変更するものではないことに留意する必要があります (JavaScript および CSS リンク、OIDC well-known エンドポイント、リダイレクト URI など、静的リソースのポートのみが変更されます)。したがって、HTTP 設定オプションを使用して、別のポート (例: 8543) を内部でリッスンするように Red Hat build of Keycloak サーバーを変更する必要があります。プロキシーはポート 8443 (ブラウザー経由でコンソールにアクセスしている際に表示されるポート) をリッスンします。サンプルのホスト名 my-keycloak.org
がサーバーに使用され、同様に管理コンソールには admin.my-keycloak.org
サブドメイン経由でアクセスできます。
Red Hat build of Keycloak の設定:
bin/kc.[sh|bat] start --proxy-headers=forwarded --https-port=8543 --hostname-url=https://my-keycloak.org:8443 --hostname-admin-url=https://admin.my-keycloak.org:8443
proxy-headers
オプションの使用は、それぞれ Forwarded
ヘッダーと X-Forwarded-*
ヘッダーに依存します。これらのヘッダーは、リバースプロキシーによって設定および上書きされる必要があります。設定を誤ると、Red Hat build of Keycloak がセキュリティー上の問題にさらされる可能性があります。詳細は、リバースプロキシーの使用 を参照してください。