来自本地 kubernetes 集群的 Keycloak 端口转发

Posted

技术标签:

【中文标题】来自本地 kubernetes 集群的 Keycloak 端口转发【英文标题】:Keycloak port-forward from local kubernetes cluster 【发布时间】:2021-12-14 18:28:09 【问题描述】:

我正在尝试将在本地 Kubernetes 集群上运行的 Keycloak 与 Spring Security OAuth 应用程序连接起来。当我使用 kubectl port-forward svc/keycloak 8080:8080 从 k8s 转发 Keycloak 时,我可以毫无问题地访问 Web GUI,但是当使用 Spring Security 进行授权时,它总是会抛出错误

Invalid token issuer. Expected 'http://localhost:8080/auth/realms/master', but was 'http://10.104.81.255:8080/auth/realms/master'

这是我在 Spring 中的 Keycloak 配置

keycloak:
  realm: master
  auth-server-url: http://localhost:8080/auth
  ssl-required: external
  resource: my-resource
  use-resource-role-mappings: true
  public-client: true

请告诉我如何设置它,以便我可以继续在本地开发。

注意:当 Spring 应用程序在集群中运行并且我将其端口转发时,它显然可以完美运行。

【问题讨论】:

【参考方案1】:

您似乎没有为Hostname provider 配置frontendUrl。将其设置为http://localhost:8080/auth,应该没问题。

【讨论】:

以上是关于来自本地 kubernetes 集群的 Keycloak 端口转发的主要内容,如果未能解决你的问题,请参考以下文章

使用Minikube运行一个本地单节点Kubernetes集群

本地电脑安装minikube

#云原生征文#Kubernetes(k8s)网络

如何在本地运行Kubernetes?

如何从 IntelliJ 运行/部署 Spring Boot 微服务到本地 Kubernetes 集群?

[K8s]Kubernetes-服务负载均衡联网(上)