Keycloak gatekeeper: установить базовый URL

Я не могу найти способ обновить базовый 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

Моя проблема заключается в том, чтобы иметь возможность установить другой базовый 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.

РЕДАКТИРОВАТЬ:

Моя цель - иметь возможность защитить несколько Прометей и ограничить доступ к ним. Я также ищу решение, чтобы установить разрешение относительно области или клиента. Я имею в виду, что некоторые пользователи Keycloak должны иметь возможность, например, авторизоваться и видеть содержимое / prometheus-dev, но не / prometheus-prod.

EDIT2:

Я пропустил параметр "base_uri". Когда я установил его на "/ prometheus" и попытался подключиться к " https://monitoring.example.com/prometheus/", я получил хорошее перенаправление " https://monitoring.example.com/prometheus/oauth/authorize?state=XXXXXXX", но не работает. В keycloak журнал выглядит так:

msgstr: сеанс не найден в запросе, перенаправление для авторизации, ошибка: сеанс аутентификации не найден

0 ответов

В Gatekeeper версии 7.0.0 вы можете использовать одну из следующих опций:

  • --oauth-uri
  • --base-uri

Но в настоящее время, если вы используете --base-uri, затем замыкающий / будет добавлен к URL обратного вызова после baseUri (т.е. /baseUri//oauth/callback). Но для меня он отлично работает сoauth-uri=/baseUri/oauth.

Это можно сделать, если переписать заголовок местоположения в ответах 307 браузеру. Если вы находитесь за входом nginx, добавьте эти аннотации.

nginx.ingress.kubernetes.io/proxy-redirect-from: /
nginx.ingress.kubernetes.io/proxy-redirect-to: /prometheus/
Другие вопросы по тегам