AWS EKS OIDC 身份验证器在尝试初始化时返回 403

问题描述 投票:0回答:1

我正在尝试将 Keycloak 与 EKS 作为 OIDC 提供商集成,虽然我过去取得了成功,但目前我正在努力使用新配置,而且我不太确定这个问题。

我遵循了所有各种指南 - 特别是这个one并且具有非常相似的配置。然而,虽然在 kubectl 登录过程中(从本地计算机)检索令牌,但当它发送到 EKS API 时,它似乎无法访问 Keycloak 端点。

我可以看到两个错误,第一个非常一致的是:

EKS OIDC 身份验证器错误消息

oidc authenticator: initializing plugin: 403 Forbidden: <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
</body>
</html>

第二个是:

kubectl 登录错误

"Unable to authenticate the request" err="[invalid bearer token, oidc: authenticator not initialized, unknown]"

值得注意的是,我们正在运行:

  • EKS v1.28 仅在专用端点模式下
  • 钥匙斗篷 v 20.0.2

我们在 EKS 集群的 Pod 内运行 Keycloak,并使用多个负载均衡器(位于 nginx 服务器后面)将流量公开路由回 Pod。测试后我们可以点击:

https://keycloak.example.com/realms/myrealm/.well-known/openid-configuration

在外部,它提供了所需的配置。

我所看到的是,由于某种原因,OIDC Authenticator 进程无法提取配置,因此无法验证令牌 - 但不清楚原因。 nginx 服务器和出站防火墙似乎都没有看到“配置”请求。我们最初的想法是有一个 403 来自 nginx 服务器,但我们在访问日志中看不到任何内容...

这与仅“私有”端点配置有关吗?当 keycloak 端点完全私有时,控制平面是否能够向其发出出站请求? 403 是从哪里来的...?

任何帮助将不胜感激!!

amazon-web-services nginx keycloak openid-connect amazon-eks
1个回答
0
投票

我也有类似的问题。 kube-apiserver 有日志:

oidc authenticator: initializing plugin: Get "https://keycloak-external.live/realms/test/.well-known/openid-configuration": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

是的,如果我想通过 keycloak 进行身份验证,那么我会收到此消息(kube-apiserver 日志):

10 authentication.go:73] "Unable to authenticate the request" err="[invalid bearer token, oidc: authenticator not initialized, unknown]"

我花了两天时间解决这个问题,但我不知道如何解决它。

© www.soinside.com 2019 - 2024. All rights reserved.