【发布时间】:2021-12-31 11:47:19
【问题描述】:
我正在将 keycloak OAuth 登录集成到 Openshift 中的 Grafana。
Keycloak Image Version - quay.io/keycloak/keycloak:15.0.2
Grafana Image Version - grafana/grafana:7.1.5
Kubernetes Version - v1.21
Openshift Version - 4.8
keyclaok 暴露在 Route: http://keycloak-keycloak.router.default.svc.cluster.local.167.254.203.104.nip.io
Grafana 暴露在 Route:https://grafana.router.default.svc.cluster.local.167.254.203.104.nip.io
keycloak 是使用 Realm - devops 和客户端 - grafana 创建的,这些值作为环境变量添加到 Grafana 部署中,如下所示
GF_AUTH_GENERIC_OAUTH_NAME=OAuth
GF_AUTH_GENERIC_OAUTH_ENABLED=true
GF_AUTH_GENERIC_OAUTH_ALLOW_SIGN_UP=true
GF_AUTH_GENERIC_OAUTH_CLIENT_ID=grafana
GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET=33341c00-daf2-4170-a66f-c2c7c23ad151
GF_AUTH_GENERIC_OAUTH_AUTH_URL=http://keycloak-keycloak.router.default.svc.cluster.local.167.254.203.104.nip.io/auth/realms/devops/protocol/openid-connect/auth
GF_AUTH_GENERIC_OAUTH_TOKEN_URL=http://keycloak-keycloak.router.default.svc.cluster.local.167.254.203.104.nip.io/auth/realms/devops/protocol/openid-connect/token
GF_AUTH_GENERIC_OAUTH_API_URL=http://keycloak-keycloak.router.default.svc.cluster.local.167.254.203.104.nip.io/auth/realms/devops/protocol/openid-connect/userinfo
GF_AUTH_GENERIC_OAUTH_TLS_SKIP_VERIFY_INSECURE=true
当我浏览 Grafana 路线并单击 Sign in with OAuth 时,我在屏幕上出现错误 - Inavalid Prameter Redirect URI。在 keycloak 日志中,我看到错误 - error=invalid_redirect_uri, redirect_uri=http://localhost:3000/login/generic_oauth。
它采用 localhost:3000 作为重定向 URI,但我在 keycloak web 的客户端部分指定了正确的重定向 URI,即:https://grafana.router.default.svc.cluster.local.167.254.203.104.nip.io/*。
在调试此问题时遇到了类似问题:https://github.com/cetic/helm-fadi/issues/39。 因此我在 Grafana 中添加了这两个环境变量:
GF_SERVER_DOMAIN=grafana.router.default.svc.cluster.local.167.254.203.104.nip.io
GF_SERVER_HTTP_PORT=80
这导致 pod crashloopbackoff 并在日志中显示以下错误:
t=2021-12-31T11:29:26+0000 lvl=info msg="HTTP Server Listen" logger=http.server address=[::]:80 protocol=https subUrl=//grafana.router.default.svc.cluster.local.167.254.203.104.nip.io:80 socket=
t=2021-12-31T11:32:53+0000 lvl=info msg="Shutdown started" logger=server reason="System signal: terminated"
t=2021-12-31T11:32:53+0000 lvl=info msg="Stopped Stream Manager"
请帮我继续。
【问题讨论】:
-
顺便说一句:Keycloak 15.0.2 易受攻击keycloak.org/2021/12/cve.html。 Grafana 使用默认范围
user:email,默认情况下 Keycloak 中不存在该范围,因此最好在 Grafana Oauth 配置中明确定义范围。 -
非常感谢。这对我有很大帮助。
标签: kubernetes oauth openshift keycloak grafana