使用 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”
并在返回原始选项卡并输入
凭据:
在用户 > 添加用户下:
用户名=“测试用户”
email = "{{whatever}}"
电子邮件已验证 = 开启
群组 > 添加“restybox-group”
创建用户后:
转到“凭据”选项卡
设置为“我的密码”
临时 = 关闭
像 Keycloak 这样的授权服务器在 运行 后面有一个 base / internet URL 反向代理。你不需要在反向代理中做任何动态的事情——看看 frontend URL configuration.
出于兴趣,我刚刚回答了一个类似的问题,这可能有助于您理解一般模式。瞄准好的 URLs(不是本地主机)和 returns intermet URLs 而不是内部 URLs.
的发现端点
我正在试验一个包含两个服务的 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” 并在返回原始选项卡并输入 凭据:
在用户 > 添加用户下:
用户名=“测试用户”
email = "{{whatever}}"
电子邮件已验证 = 开启
群组 > 添加“restybox-group”
创建用户后:
转到“凭据”选项卡
设置为“我的密码”
临时 = 关闭
像 Keycloak 这样的授权服务器在 运行 后面有一个 base / internet URL 反向代理。你不需要在反向代理中做任何动态的事情——看看 frontend URL configuration.
出于兴趣,我刚刚回答了一个类似的问题