Keycloak 密钥斗篷网关守护者:设置基本URL

Keycloak 密钥斗篷网关守护者:设置基本URL,keycloak,keycloak-gatekeeper,Keycloak,Keycloak Gatekeeper,我找不到一种方法来更新我的KeyClope gatekeeper侧车的基本URL。 我的配置适用于设置为基本URL(例如:)的服务,而不适用于自定义基本路径(例如:) 我的yaml配置是: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: prometheus-deployment spec: replicas: 1 template: metadata: name: prometheu

我找不到一种方法来更新我的KeyClope gatekeeper侧车的基本URL。 我的配置适用于设置为基本URL(例如:)的服务,而不适用于自定义基本路径(例如:)

我的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”),因为当我打开侧车时,我会收到一个指向侧车的307重定向 然而它应该是

我尝试使用参数--“重定向url=” 但这仍然会将我重定向到同一个URL

编辑:

我的目标是能够保护多个普罗米修斯并限制它们的使用。我也在寻找一个解决方案来设置域或客户端的权限。我的意思是,一些keydape用户应该能够,例如,编写并查看/prometheus-dev的内容,而不是/prometheus-prod

编辑2:

我错过了参数“base_uri”。当我将其设置为“/prometheus”并尝试连接到“”时,我收到了良好的重定向“”,但不起作用。在KeyClope中,日志为:

消息:在请求中找不到会话,正在重定向以进行授权,错误:找不到身份验证会话


在网守7.0.0版中,您可以使用以下选项之一:

  • --oauth uri
  • --基本uri

但是当前如果您使用
--base uri
,则在
baseUri
之后将在回调url中添加一个尾随
/
(即
/baseUri//oauth/callback
)但对我来说,它可以与
oauth uri=/baseUri/oauth

配合使用。如果您在浏览器的307响应上重写位置头,则可以完成此操作。如果您在nginx入口后面,请添加这些注释

nginx.ingress.kubernetes.io/proxy-redirect-from: /
nginx.ingress.kubernetes.io/proxy-redirect-to: /prometheus/

为什么需要使用path
/prometheus
?没有为此指定Keyclope gatekeeper。因为我想保护多个路径,但不是所有路径都使用同一Keyclope域或客户端。我正在寻找使用Keyclope管理权限的解决方案。我的意思是,域中的某些用户应该只能访问某些路径和其他路径位于第二个领域的用户可以访问其他路径。如果没有额外的黑客攻击(响应和路径重写),您真的不能使用网关守卫来保护唯一的路径.IMHO使用gatekeeper保护整个域,将公共资源列入白名单,并为所选资源定义附加条件,例如,只有具有prometheus组的用户才能访问/prometheus资源。感谢您的评论@JanGaraj。但是有一件事,我应该如何保护多个容器。因为例如,我的路径/prometheus prod目标一个容器(pod)和/或普罗米修斯开发人员以另一个容器为目标。因此,我们的想法是为每个容器设置一个守门人侧车,并部署一个能够回答一个问题的侧车。”/" ? 我不知道如何进行此设置。这取决于您的设置。我猜你正在使用入口资源,所以我尝试了这个,我的前端被重定向了很多次,以至于我收到错误“重定向你太多次了”。你知道发生了什么吗?