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

我正在尝试基于以下GitHub项目的双服务docker-compose配方进行实验:

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

精简后,我的配置看起来像以下的分支提交:

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

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

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

docker-compose build

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

然后浏览到"http://localhost:8090"开始OIDC流程。你可以通过将"keycloak-svc"替换为"localhost"来绕过来源问题,这将引导你到正确的登录界面。不过,一旦进入那里,你需要添加一个用户才能继续。在单独的选项卡中浏览到"http://localhost:8080"并按照以下步骤操作,然后返回到原始选项卡并输入凭据:

  • 在用户下添加用户:

    • username = "testuser"

    • email = "{{whatever}}"

    • email verified = ON

    • 组 > 添加 "restybox-group"

  • 用户创建后:

    • 转到"凭据"选项卡

    • 设置为"mypassword"

    • 临时 = OFF

原文链接 https://stackoverflow.com/questions/70795255

点赞
stackoverflow用户9019885
stackoverflow用户9019885

授权服务器(如Keycloak)在反向代理后运行时具有基本/互联网URL。您无需在反向代理中执行任何动态操作-请查看前端URL配置

出于兴趣,我在这里刚刚回答了一个类似的问题[here](https://stackoverflow.com/questions/70836338/ory-hydra-403-with-reverse-proxy),可能会帮助您理解一般模式。旨在获得良好的URL(而不是localhost)和一个发现端点,该端点返回的是Intermet URL而不是内部URL。

2022-01-25 19:43:17