You push code, review a change, and wait for Gerrit to nudge you about authentication. That dance between browser sessions and SSH keys feels older than half your infrastructure. Gerrit WebAuthn fixes that pain without ripping out your access model—it turns strong cryptographic identity into something as easy as tapping a key.
Gerrit handles code review at scale. WebAuthn handles human identity at scale. When you pair them, every review, approval, and submit step happens under verified control, not just a remembered password. The browser challenge-response mechanism works with hardware tokens or biometrics, using standards like FIDO2 and OIDC to help your organization comply with SOC 2 and internal audit rules. The result is fewer credentials floating in Slack and a lot less “who approved this?” confusion.
Here’s how it flows: Gerrit’s authentication configuration defines identity endpoints. WebAuthn plugs in through your identity provider—think Okta or Keycloak—as a second-factor source or passwordless primary. The token’s attestation binds directly to the Gerrit account. When a developer signs in, Gerrit verifies the credential ID and signature against WebAuthn APIs, so there’s no secret exchange to leak. Access rules tie to verified identities, not to stale keys hidden in .ssh.
To keep it stable, sync Gerrit groups with your IdP roles rather than maintaining them manually. Rotate registered credentials when developers change hardware. Log attestation metadata so your audit trail can prove who actually pushed what. If setup errors appear, check that the browser supports platform authenticators and that your Gerrit version includes the WebAuthn plugin. Most configuration mistakes are timing issues in origin URLs or mismatched challenge states.
The payoff looks like this: