无法在 keycloak 和 Gatekeeper 之间进行通信

Posted

技术标签:

【中文标题】无法在 keycloak 和 Gatekeeper 之间进行通信【英文标题】:Not able to communicate between keycloak and gatekeeper 【发布时间】:2020-10-28 03:07:54 【问题描述】:

我完全是 key-cloak 和 keycloak-gatekeeper 的新手 我在地址为 localhost:8080 的机器上运行 keycloak,因为我的网守在 minikube 环境中运行 下面是我的配置和部署文件

    apiVersion: apps/v1
kind: Deployment
metadata:
  name: gatekeeperdeployment
  labels:
    app: gatekeeperapp
spec: 
  replicas: 1
  selector: 
    matchLabels:
      app: gatekeeperapp
  template:
    metadata:
      labels:
        app: gatekeeperapp
    spec: 
      containers: 
      - image: keycloak/keycloak-gatekeeper:7.0.0
        imagePullPolicy: IfNotPresent
        name: gatekeeperalone
        ports:
        - containerPort: 3000
        args:
        - --config=/etc/secrets/config.yml
        - --redirection-url=http://127.0.0.1:3000
        - --upstream-url=http://192.168.99.101:30732
        - --resources=uri=/prods
        - --enable-logging=true
        - --enable-json-logging=true
        - --verbose=true
        volumeMounts:
        - name: secret
          mountPath: /etc/secrets
      volumes:
      - name: secret
        secret:
          secretName: secret-gatekeeper

我的配置文件如下:

client-id: ems
client-secret: 17a9da01-880a-432c-ba5a-8cbf131d5634
discovery-url: http://127.0.0.1:8180/auth/realms/ems_realm
redirection-url: http://127.0.0.1:3000
upstream-url: http://192.168.99.101:30732
skip-upstream-tls-verify: true
skip-openid-provider-tls-verify: true
encryption-key: 1234567898765431
listen: 3000
secure-cookie: false
enable-logging: true
enable-json-logging: true
enable-default-deny: true
enable-refresh-tokens: true
enable-session-cookies: true
debug: true
ingress.enabled: true
resources:
  - uri: /prods

我已经在 discovery-url 参数中设置了 localhost 路径。

因此,通过上述配置,我无法与 keycloak 进行通信。请提供有关此行为的一些指导。非常感谢任何形式的帮助。

【问题讨论】:

【参考方案1】:

您确定 Keycloak 正在网关守卫容器中的 127.0.0.1:8180 (discovery-url) 上运行吗?容器在自己的网络命名空间中运行,因此容器中的 localhost 与操作系统中的 localhost 不同。正确配置discovery-url或配置主机使用的网络命名空间(例如,如果keycloak在主机网络中运行,则使用主机网络)。

【讨论】:

以上是关于无法在 keycloak 和 Gatekeeper 之间进行通信的主要内容,如果未能解决你的问题,请参考以下文章

第三方证书和Gatekeeper

为啥 electron-osx-sign 无法生成 Gatekeeper 识别的签名应用程序?

父服务关闭时,Apollo 联合网关无法加载

Spring Boot 我无法切换 keycloak 和基本身份验证

无法在 keycloak 上查看登录页面

Keycloak 问题无法在仅承载模式下交换代码以获得授权