使用 nginx (OpenResty) 反向代理配置 Keycloak OIDC

Configuring Keycloak OIDC with an nginx (OpenResty) reverse-proxy

我正在试验一个包含两个服务的 docker-compose 配方,主要基于 以下 GitHub 个项目:

https://github.com/rongfengliang/keycloak-openresty-openidc

精简后,我的配置看起来像下面的fork 提交:

https://github.com/Tythos/keycloak-openresty-openidc

我当前的问题是,授权端点 ("../openid-connect/auth") 使用 内部来源(“http://keycloak-svc:”)。显然,如果用户是 重定向到此 URL,他们的浏览器将需要引用外部来源 (“http://localhost:”)。我认为 PROXY_ADDRESS_FORWARDING 变量用于 Keycloak 服务可以解决这个问题,但我想知道我是否需要做些什么 就像在 nginx/openresty 配置中即时重写。

要复制,从项目根目录::

docker-compose build

docker-compose up --force-recreate --remove-orphans

然后浏览到“http://localhost:8090”以启动 OIDC 流程。你可以 规避来源问题,一旦你遇到上述来源 问题,通过将“keycloak-svc”替换为“localhost”,这会将您转发到 正确的登录界面。但是,一旦到达那里,您将需要添加一个用户 继续。要添加用户,请在单独的选项卡中浏览到“http://localhost:8080” 并在返回原始选项卡并输入 凭据:

像 Keycloak 这样的授权服务器在 运行 后面有一个 base / internet URL 反向代理。你不需要在反向代理中做任何动态的事情——看看 frontend URL configuration.

出于兴趣,我刚刚回答了一个类似的问题,这可能有助于您理解一般模式。瞄准好的 URLs(不是本地主机)和 returns intermet URLs 而不是内部 URLs.

的发现端点