Keycloak Kubernetes 401未经授权

时间:2020-09-23 10:42:19

标签: spring-boot kubernetes spring-security keycloak istio

我在Kubernetes集群上运行了一个密钥斗篷服务器和一个Spring Boot应用程序,我面临着两种情况,第一种情况正在工作,而另一种情况我得到401未经授权。

第一种情况:

  • 在我的k8s集群内使用kubectl exec命令输入一个测试容器,并请求带有curl POST请求的令牌: http:// keycloak-service-name:8080 / auth / realms / lisa / protocol / openid-connect / token
  • 我得到了令牌
  • 我使用该令牌向邮递员发送了一个请求到我应用程序的安全端点, 运行正常,已授予访问权限

第二种情况:

  • 使用邮递员的必要参数通过向以下地址发送POST请求来请求令牌:http:// keycloak-external-ip:port / auth / realms / lisa / protocol / openid-connect / token
  • 我收到访问令牌
  • 我使用我的应用程序令牌将邮递员的请求发送到安全的端点,我获得了401未经授权

Keycloak是使用NodePort服务公开的。

该应用使用istio入口网关公开。

Keycloak服务器版本:9.0.0。

春季启动应用中的

keycloak版本:10.0.2

1 个答案:

答案 0 :(得分:1)

通过更改application.properties文件中的keycloak.auth-server-url值来解决此问题。 keycloak部署具有2个服务,其中一项是clusterIP类型,第二项是nodePort类型。 在keycloak.auth-server-url = http:// keycloak-clusterIP服务名称:8080 / auth之前 在keycloak.auth-server-url = http:// node-ip-adress:nodePort / auth

之后