我正在尝试在我的服务前面将Keycloak Gatekeeper设置为反向代理,但我不知道redirection-url
的目的是什么。我想我可以把 Gatekeeper 放在我的服务前面,而我的服务不需要知道任何关于 authn/z 的信息。如果它需要回调终结点,这似乎是不可能的。
我能够部署Keycloak Server,Keycloak Gatekeeper和一个简单的节点服务(所有这些都部署在docker容器中(。通过对我的主机文件进行一些黑客攻击,我能够向 Gatekeeper 发送请求,它正确地验证了我并将我重定向回我的节点服务。但是,我的节点服务需要添加一个/oauth/callback
端点,因为网守将该后缀添加到redirection-url
中指定的任何内容中。
这是我的网守配置的样子:
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
这似乎是不可能的。
有没有办法让网守在需要时执行 authnz,并在用户经过正确身份验证时充当简单的代理?还是有什么我不明白的地方是不可能的?
网守帮助:
--redirection-url value redirection url for the oauth callback url, defaults to host header is absent [$PROXY_REDIRECTION_URL]
仅当网守位于负载均衡器或其他反向代理后面时,您才需要使用redirection-url
。该redirection-url
是开放 ID 连接流所必需的。当用户通过身份验证时,当然不会应用redirect-url
。