Phishing-Resistant MFA in Keycloak vs Evilginx
An adversary in the middle (AitM) phishing proxy, such as Evilginx and the kits built like it, sits between your user and your real Keycloak login page. The user sees your genuine login page, served through a lookalike domain. They type their password and their TOTP or email code, the proxy passes both to Keycloak, and when the login succeeds the proxy keeps the session cookies. One-time codes do not stop this, because the user enters them into the proxy, which forwards them in real time. Phishing-resistant MFA in Keycloak means WebAuthn and passkeys, because the browser binds the credential to your domain and will not use it on the attacker's.
This page explains what the proxy takes, which factors survive it, how to make passkeys the path that matters, and what to set so a stolen session is worth less. Every Keycloak behavior described here was reproduced on Keycloak 26.8.1. The WebAuthn origin checks are stated from the WebAuthn specification and were not reproduced with a live proxy. We did not run a phishing tool.