0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

keycloakのリバースプロキシの設定

Last updated at Posted at 2025-02-08

はじめに

Keycloakのリバースプロキシの設定でハマったので備忘録として記載する。

取ろうとした構成図

aws_keycloak.png

AWS上に上記の構成で、quay.io/keycloak/keycloak:26.1.0を使用しkeycloakコンテナを立てた。
ALBがDNSを持っており、そのDNSの特定パスにアクセスした場合、ALBの
裏のKeycloakにアクセスできる構成。この場合ALBはリバースプロキシの役割をしている。

この構成で、

変数名 説明
KC_BOOTSTRAP_ADMIN_USERNAME 任意の値 adminのid
KC_BOOTSTRAP_ADMIN_PASSWORD 任意の値 adminのパスワード
KC_HEALTH_ENABLED true ヘルスチェックを許可orしない。9000番port、デフォルトでは/healthでヘルスチェックしている。

の環境変数を設定しECSタスクを起動したところ、mixed contentでエラーになった。
この理由としては、ECS自体が前にALBの存在を知らず、レスポンスのロケーションにhttpでのECSのipを載せてしまう。ゆえにmixed Contentsでブロックされてしまうからである....(下記図のようになる)

aws_keycloak_error.png

初めにドキュメントを見て、あまりよくわからなかったため、

ネット上で色々と検索したところ、
https://sabiz.hateblo.jp/entry/2023/03/24/071754

https://stackoverflow.com/questions/55044623/mixed-content-error-because-of-keycloak-default-login-redirection

PROXY_ADDRESS_FORWARDING=true

KC_PROXY=passthrough

のような設定があったため、入れてみてもうまくkeycloakがリバースプロキシを処理してくれていなかった。

最終的にドキュメントを血眼になって読み込むと、上記の環境変数は無くなっており、
Keycloakの公式ドキュメントに、

hostname=任意のurl
hostname-backchannel-dynamic=true

とすると、うまく動くと記載があった。直接
useing proxyに記載はなく、Port to be proxied項目の遷移後のページに記載があったため、一度軽く見ただけでは見つからなかった...

英語を忌避せずにしっかりドキュメントと向き合おうねというお話でした。
フロントの世界の発展は早いから2~3年前の記事は参考にならないね。

この記事も数年経てば役に立たなくなることでしょうが、それまでに誰かの参考になれば!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?