在 K8S 集群中使用 KeyCloak 网关

Using KeyCloak Gateway in a K8S Cluster

我有 KeyCloak Gateway 运行 在本地成功地为 Kubernetes 仪表板提供 Google OIDC 身份验证。但是,当应用程序作为集群本身中的 pod 部署时,使用相同的设置会导致错误。

当网关在 K8S pod 中 运行 时,我看到的错误是:

unable to exchange code for access token    {"error": "invalid_request: Credentials in post body and basic Authorization header do not match"}

我正在使用以下选项调用网关:

--enable-logging=true
--enable-self-signed-tls=true
--listen=:443
--upstream-url=https://mydashboard
--discovery-url=https://accounts.google.com
--client-id=<client id goes here>
--client-secret=<secret goes here>
--resources=uri=/*

将这些设置应用于 pod 中的容器后,我可以浏览到网关,被重定向到 Google 以登录,然后被重定向回生成上述错误的网关。

什么可以解释 运行 本地应用程序和 运行 Pod 中会产生上述错误的应用程序之间的差异?

这最终证明是 copy/paste 失败,客户端密码不正确。错误消息在这里没有多大帮助,但至少它是一个简单的修复。