キークローク ゲートキーパー サイドカーのベース URL を更新する方法が見つかりません。私の構成は、カスタム ベース パス (例: https://monitoring.example.com/prometheus ) ではなく、ベース URL (例: https://monitoring.example.com/ ) に設定されたサービスでうまく機能します。
私の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
私の問題は、サイドカーに別のベース URL パス ("/prometheus") を設定できるようにすることです。 https://monitoring.example.com/prometheusを開くと、 https://monitoringへの 307 リダイレクトを受け取るためです。 .example.com/oauth/authorize?state=XXXXXXX ですが、 https: //monitoring.example.com/prometheus/oauth/authorize?state=XXXXXXX である必要があります。
パラメータ「--redirection-url= https://monitoring.example.com/prometheus」を試してみましたが、それでも同じ URL にリダイレクトされます。
編集:
私の目的は、複数の Prometheus を保護し、それらへのアクセスを制限できるようにすることです。また、レルムまたはクライアントに関する許可を設定するソリューションも探しています。つまり、一部のキークローク ユーザーは、たとえば、認証して /prometheus-dev のコンテンツを表示できますが、/prometheus-prod は表示できないはずです。
EDIT2:
パラメータ「base_uri」がありませんでした。「/prometheus」に設定して「https://monitoring.example.com/prometheus/ 」に接続しようとすると、「 https://monitoring.example」という適切なリダイレクトが返されます。 .com/prometheus/oauth/authorize?state=XXXXXXX "しかし、機能しません。キークロークでは、ログは次のとおりです。
「msg: リクエストにセッションが見つかりません。承認のためにリダイレクトしています。エラー: 認証セッションが見つかりません」