无法在 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 之间进行通信的主要内容,如果未能解决你的问题,请参考以下文章
为啥 electron-osx-sign 无法生成 Gatekeeper 识别的签名应用程序?