3

我正在尝试将 Keycloak Gatekeeper 设置为我的服务前的反向代理,但我不知道redirection-url. 我想我可以把 Gatekeeper 放在我的服务前面,而我的服务不需要知道任何关于 authn/z 的信息。如果需要回调端点,这似乎是不可能的。

我能够部署 Keycloak Server、Keycloak Gatekeeper 和一个简单的节点服务(全部部署在本地 docker 容器中)。通过对我的主机文件进行一些黑客攻击,我能够向 Gatekeeper 发送一个请求,它正确地对我进行身份验证并将我重定向回我的节点服务。但是,我的节点服务需要添加一个/oauth/callback端点,因为 Gatekeeper 将该后缀添加到redirection-url.

这是我的 Gatekeeper 配置的样子:

discovery-url: http://keycloak-server:8080/auth/realms/master
client-id: proxy-node-server
client-secret: abcabcab-abca-abca-abca-abcabcabcabc
listen: ':3001'
enable-refresh-tokens: true
redirection-url: http://node-server:3000
encryption-key: <ENCRYPTION_KEY>
upstream-url: http://node-server:3000
resources:
- uri: /*
secure-cookie: false

我希望能够将 Gatekeeper 放在不了解身份验证、授权、OIDC 等的服务前面,但这redirection-url似乎是不可能的。

有没有办法让 Gatekeeper 在需要时进行 authnz 并在用户通过正确身份验证时充当简单的代理?或者有什么我不明白的地方这是不可能的吗?

4

1 回答 1

2

看门人帮助:

--redirection-url      value redirection url for the oauth callback url, defaults to host header is absent [$PROXY_REDIRECTION_URL]

redirection-url只有当网守位于负载均衡器或其他反向代理之后时,您才需要使用。这redirection-url是 Open ID Connect 流程所必需的。当用户通过身份验证redirect-url时,当然不适用。

于 2019-10-15T14:40:13.867 回答