Passkeys provide a passwordless, phishing-resistant authentication method using FIDO2/WebAuthn standards. ZITADEL has native support for passkeys, allowing users to authenticate with biometrics, security keys, or device authentication.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/zitadel/zitadel/llms.txt
Use this file to discover all available pages before exploring further.
What are Passkeys?
Passkeys are a modern authentication method that replaces passwords with cryptographic key pairs:- Private key: Stored securely on the user’s device (never leaves the device)
- Public key: Stored on ZITADEL’s servers
Benefits
Phishing-Resistant: Passkeys are bound to specific domains and cannot be used on phishing sites No Password Management: Users don’t need to remember or manage passwords Biometric Authentication: Use fingerprint, Face ID, or other device biometrics Cross-Platform: Passkeys sync across devices via platform providers (Apple, Google, Microsoft) WebAuthn Standard: Based on open standards supported by all major browsersPasskey Types
ZITADEL supports different passkey configurations:Platform Authenticators
Built into the user’s device:- Touch ID / Face ID on Apple devices
- Windows Hello on Windows
- Fingerprint sensors on Android devices
Cross-Platform Authenticators
External security keys:- YubiKey
- Google Titan Security Key
- Other FIDO2-compliant hardware tokens
User Verification
Passkeys can be configured to require user verification (biometric or PIN) or allow passwordless authentication without additional verification.Enabling Passkeys
Passkeys are enabled through the Login Policy settings.Via Console
Via API
Registering a Passkey
Users can register passkeys through the ZITADEL Console or via API integration.User Self-Service Registration
Complete Registration
Follow the browser prompts to register the passkey with their device/security key
Programmatic Registration
Applications can trigger passkey registration via the User API:Registration Flow Details
The passkey registration process:- Generate Challenge: ZITADEL creates a cryptographic challenge
- User Gesture: Browser prompts for user verification (biometric/PIN)
- Key Generation: Device generates a new key pair
- Attestation: Device sends public key and attestation to ZITADEL
- Storage: ZITADEL stores the public key and associates it with the user
Authenticating with Passkeys
Login Flow
API-Based Authentication
Passkey Configuration
ZITADEL’s passkey implementation can be customized through several configuration options.WebAuthn Configuration
The ZITADEL backend supports configuring: RP ID (Relying Party ID): The domain for passkey scope RP Name: Display name shown during registration Timeout: How long users have to complete authentication User Verification: Required, preferred, or discouraged Attestation: Direct, indirect, or noneAttribute Mapping
Passkeys in ZITADEL store:- Passkey ID: Unique identifier for the credential
- Passkey Name: User-friendly name for the device
- Public Key: The cryptographic public key
- Attestation Type: Type of attestation provided during registration
- Sign Count: Counter to detect cloned authenticators
- AAGUID: Authenticator model identifier
Multi-Device Passkeys
Modern passkey implementations support syncing across devices:iCloud Keychain (Apple)
Passkeys registered on one Apple device sync to all devices signed into the same iCloud account.Google Password Manager
Passkeys sync across Android devices and Chrome browsers signed into the same Google account.Microsoft Account
Passkeys sync across Windows devices using the same Microsoft account.Cross-Platform Sync: While passkeys can sync within an ecosystem (Apple, Google, Microsoft), they don’t currently sync between different ecosystems. Users may need to register separate passkeys for each ecosystem.
Security Considerations
User Verification
ZITADEL supports configuring user verification requirements:Attestation
Attestation validates the authenticator’s authenticity:- Direct: Full attestation statement (most secure)
- Indirect: Anonymized attestation
- None: No attestation verification
Recovery Options
Passkeys as MFA
Passkeys can be used as a multi-factor authentication method alongside passwords:- User authenticates with password (first factor)
- ZITADEL prompts for second factor
- User authenticates with passkey (second factor)
MFA_TYPE_PASSKEY to the login policy’s multi-factors list.
Migration from Passwords
Strategy for transitioning users to passkeys:Testing Passkeys
Local Development
When testing passkeys locally:- Use
localhost(passkeys work on localhost for development) - For mobile testing, use ngrok or similar tunneling to get HTTPS
- Some authenticators only work over HTTPS
Browser Support
Passkeys are supported in:- Chrome 67+
- Safari 14+
- Firefox 60+
- Edge 18+
Testing Tools
Use browser developer tools to:- Inspect WebAuthn API calls
- View credential creation/request options
- Debug registration/authentication flows