我无法找到更新我的 keycloak 网守边车的基本 URL 的方法。我的配置适用于设置为基本 URL 的服务(例如:https ://monitoring.example.com/ ),而不是自定义基本路径(例如:https ://monitoring.example.com/prometheus )。
我的 yaml 配置是:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: prometheus-deployment
spec:
replicas: 1
template:
metadata:
name: prometheus
spec:
containers:
- name: prometheus
image: quay.io/coreos/prometheus:latest
args:
- '--web.external-url=https://monitoring.example.com/prometheus'
- '--web.route-prefix=/prometheus
- name: proxy
image: keycloak/keycloak-gatekeeper:5.0.0
imagePullPolicy: Always
args:
- --resource=uri=/*
- --discovery-url=https://auth.example.com/auth/realms/MYREALM
- --client-id=prometheus
- --client-secret=XXXXXXXX
- --listen=0.0.0.0:5555
- --enable-logging=true
- --enable-json-logging=true
- --upstream-url=http://127.0.0.1:9090/prometheus
我的问题是能够为 sidecar 设置不同的基本 URL 路径(“/prometheus”),因为当我打开https://monitoring.example.com/prometheus时,我会收到 307 重定向到https://monitoring .example.com/oauth/authorize?state=XXXXXXX 而它应该是https://monitoring.example.com/prometheus/oauth/authorize?state=XXXXXXX
我尝试使用参数“--redirection-url= https://monitoring.example.com/prometheus ”,但这仍然会将我重定向到相同的 URL。
编辑:
我的目标是能够保护多个 Prometheus 并限制对它们的访问。我也在寻找一种解决方案来设置有关领域或客户端的权限。我的意思是,一些 keycloak 用户应该能够,例如,验证和查看 /prometheus-dev 的内容,但不能查看 /prometheus-prod 的内容。
编辑2:
我错过了参数“base_uri”。当我将其设置为“/prometheus”并尝试连接到“ https://monitoring.example.com/prometheus/ ”时,我收到了良好的重定向“ https://monitoring.example .com/prometheus/oauth/authorize?state=XXXXXXX " 但不起作用。在keycloak中,日志为:
“消息:请求中未找到会话,重定向授权,错误:未找到身份验证会话”