我有一个HAProxy作为我的具有x509身份验证的应用程序的反向代理。 HAProxy进行X509验证(基于客户端证书),并将证书添加回请求标头SSL_CLIENT_CERT
。现在,我想使用Keycloak从证书中识别用户。我有doc中给出的Keycloak身份验证流程,而我的haproxy配置如下
frontend http-frontend
bind *:8888
bind *:8888 transparent ssl crt /etc/x509/https/haproxy.pem ca-file /etc/x509/https/myCA.pem verify required
http-request redirect scheme https if !{ ssl_fc }
http-request set-header SSL_CLIENT_CERT %[ssl_c_der,base64]
default_backend app1
backend app1
server server1 host.docker.internal:8443/auth/realms/ng/protocol/openid-connect/auth ssl verify none
CERT_CHAIN
头是否为强制性的(如果是,如何获取它。ssl_c_der包含颁发者的服务器证书。我应该拆分它们吗?)我还尝试将请求从HAProxy转发到Web应用程序,并尝试通过授权代码流登录。但是Keycloak抛出错误可能是因为,自定义浏览器身份验证流程中只有x509 username form execution
。