【问题标题】:Configuring Keycloak OIDC with an nginx (OpenResty) reverse-proxy使用 nginx (OpenResty) 反向代理配置 Keycloak OIDC
【发布时间】:2022-01-26 03:43:17
【问题描述】:

我正在尝试使用两种服务的 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 构建

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

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

  • 在用户下 > 添加用户:

    • 用户名 = "testuser"

    • email = "{{whatever}}"

    • 电子邮件验证 = 开启

    • 群组 > 添加“restybox-group”

  • 用户创建后:

    • 转到“凭据”选项卡

    • 设置为“我的密码”

    • 临时 = 关闭

【问题讨论】:

    标签: nginx docker-compose keycloak openid-connect openresty


    【解决方案1】:

    授权服务器(如 Keycloak)在反向代理后面运行时具有基本/互联网 URL。你不需要在反向代理中做任何动态的事情——看看frontend URL configuration

    出于兴趣,我刚刚回答了一个类似的问题here,这可能有助于您理解一般模式。瞄准良好的 URL(不是 localhost)和返回互联网 URL 而不是内部 URL 的发现端点。

    【讨论】:

    • 最时髦。经过仔细检查,根据您的反馈,KEYCLOAK_FRONTEND_URL 环境变量被设置为“localhost:8080/auth”(如果您在历史后期遇到此问题,请参阅最近的提交),并且 PROXY_ADDRESS_FORWARDING 环境变量被完全删除。这不仅解决了前端地址问题(在对确切值进行几次尝试失败迭代之后),它甚至现在通过正确的流程将成功的授权传回。精彩的。 jboss/keycloak 的官方 Docker Hub 页面也很有用:hub.docker.com/r/jboss/keycloak
    猜你喜欢
    • 2017-12-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 2021-09-30
    • 2017-08-14
    相关资源
    最近更新 更多