我正在尝试使用 keycloak 为我在 EKS 上托管的许多服务设置 istio JWT 身份验证规则。我原以为一切正常,直到我尝试访问 keycloak 管理 UI,当我尝试调用 localization/en 等需要使用主领域标头的位置时,它会向我显示 401。我想我可能还需要将 master 领域添加到 jwt 规则中,所以我已经这样做了,但我仍然没有太多运气。
apiVersion: security.istio.io/v1beta1
kind: RequestAuthentication
metadata:
name: keycloak-request-authentication
namespace: istio-system
spec:
selector:
matchLabels:
app: istio-ingressgateway
jwtRules:
- issuer: http://auth.platform.com/auth/realms/other
jwksUri: http://auth.platform.com/auth/realms/other/protocol/openid-connect/certs
- issuer: http://auth.platform.com/auth/realms/master
jwksUri: http://auth.platform.com/auth/realms/master/protocol/openid-connect/certs
我正在使用 keycloakx 版本 2.3.0,确切的错误似乎是 -
Error: Network response was not OK.
at fetchWithError (http://auth.platform.com/auth/resources/6jpo1/admin/keycloak.v2/assets/index-8a79a090.js:67:121366)
at async Agent.requestWithParams (http://auth.platform.com/auth/resources/6jpo1/admin/keycloak.v2/assets/index-8a79a090.js:67:124011
自从将主领域添加到我的 RequestAuthentication 后,身份验证对于所有其他服务都运行良好,只是 keycloak 似乎发生了一些奇怪的事情,导致 JWT 被拒绝。
任何帮助将不胜感激。谢谢。
它将向 keycloak 发送一个空白的身份验证标头,您需要确保原始令牌随请求一起转发。
- issuer: http://auth.platform.com/auth/realms/master
jwksUri: http://auth.platform.com/auth/realms/master/protocol/openid-connect/certs
forwardOriginalToken: true