【问题标题】:Oauth2_proxy with Keycloak : getting "invalid_token" with /userinfo API带有 Keycloak 的 Oauth2_proxy:使用 /userinfo API 获取“invalid_token”
【发布时间】:2020-05-30 13:29:19
【问题描述】:

我第一次尝试使用 Keycloak,并使用 Keycoak 作为 oauth2_proxy (https://github.com/oauth2-proxy/oauth2-proxy/blob/v5.1.1/providers/keycloak.go) 的提供者,以通过 LDAP 实现用户身份验证。 我已经按照 Keycloak 中的所有步骤创建了一个领域、创建客户端、客户端 ID、客户端密码等。Keycloak API“/token”也在传递。但是,一旦我在 keycloak 登录屏幕中传递用户名/密码,我会在 oauth2_proxy 中收到以下错误:

[2020/05/30 10:15:37] [requests.go:25] 401 GET http://172.20.0.10:8080/auth/realms/master/protocol/openid-connect/userinfo {"error":"invalid_token","error_description":"Token verification failed"}

在启动 oauth2_proxy docker 容器时,我还传递了以下参数:

command: -upstream=static://200 -http-address=0.0.0.0:8080 -https-address=0.0.0.0:8443
      -redirect-url="https://portal.acme.com/oauth2/callback"
      -scope='test-scope' -email-domain=* -cookie-domain=* -cookie-secure=false -cookie-secret=skjgfsgfsf23524
      -cookie-samesite="none" -provider=keycloak
      -client-id='abcd-client' -client-secret='c0281257-b600-40b2-beae-68d1f2d72f02'
      --tls-cert-file=/etc/acme.com.pem
      --tls-key-file=/etc/acme.com.key
      -login-url="http://localhost:7575/auth/realms/master/protocol/openid-connect/auth"
      -redeem-url="http://172.20.0.10:8080/auth/realms/master/protocol/openid-connect/token"
      -validate-url="http://172.20.0.10:8080/auth/realms/master/protocol/openid-connect/userinfo"

有人可以帮忙解决可能丢失或出错的问题吗? 任何线索或提示都会非常有帮助。

【问题讨论】:

    标签: oauth-2.0 keycloak oauth2-proxy


    【解决方案1】:

    我找到了解决这个问题的方法。这是因为 JWT 令牌中的颁发者与我在启动此 oauth2_proxy 容器时提供的 URL 不匹配。 为了解决这个问题,需要 docker 容器与 Keycloak 暴露的主机网络和端口通信。这需要两件事:

    1. 在启动 oauth2_proxy 时,在所有 Keycloak API 中使用“host.docker.internal”作为主机,以便 oauth2_proxy 容器通过主机网络与 Keycloak 通信。
    2. 将“host.docker.internal”映射到本地机器/主机中的 127.0.0.1,以便可以访问浏览器重定向。 在这个小技巧之后,设置工作。 谢谢!

    【讨论】:

    • 这可能是一个远景,但您介意在此处或在 gist 中分享您的 docker / docker-compose 配置吗?我也有类似的问题。
    • 我对你的设置也很感兴趣。有类似的问题
    猜你喜欢
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2018-08-11
    • 2018-08-25
    • 1970-01-01
    • 2022-11-17
    • 2019-06-23
    相关资源
    最近更新 更多