Passwords, Passkeys, and MFA
Configure password policies, implement passwordless authentication with passkeys, and set up multi-factor authentication
Multiple Authentication Methods in Zitadel
In this video, we’re going to take a look at something very simple, but also important: allowing people to register and login to your application using Zitadel with multiple methods. We’ll cover username and password authentication, Passkeys, and explore the other options available in the Zitadel console.
Getting Started with Identity Providers
When you first open your Zitadel Cloud console, you’ll find the default settings for your instance. If you click on Identity Providers, you’ll see that there are no third-party setups initially - no Google, GitHub, or other providers configured yet.
For third-party providers like GitHub, you can click on them to get the configuration details where you’ll need to add your client ID and secret. This setup is especially important when running your own Zitadel instance, as it’s often crucial to piggyback onto existing authentication providers. We’ll be covering social login providers in detail in the next video.
Configuring Password Authentication
Let’s start with the basics: how can we allow people to log in with their username and password? And even better, can we enable passwordless Passkey-based login?
Good news: by default, passwordless login is enabled and supports:
- Fingerprint authentication
- Security keys
- Face ID
- Other biometric methods
Important: Username and password authentication is NOT enabled by default in new Zitadel instances. You’ll need to manually enable this in your settings.
Enabling Username and Password Login
To enable traditional password-based authentication:
- Navigate to your instance’s default settings
- Find the Login Behavior and Security section
- Enable Username and Password authentication
- Check that User Registration is allowed
- Click Save
You’ll also find configuration options for:
- Password complexity requirements
- Password lifetime policies
- Secret rotation settings
- Login and registration restrictions
Understanding Organization vs Instance Settings
One crucial point that often trips up new users: Zitadel has a hierarchy of settings.
There are default instance-wide settings that apply to all organizations when they have nothing set themselves or when they inherit from the instance. Each organization can also be configured independently with its own settings.
For example, if you disable user registration at the instance level but it’s still enabled at the organization level, users can still register. Always check both levels when configuring authentication:
- Instance Settings: Default settings for your entire Zitadel instance
- Organization Settings: Can override instance defaults for specific organizations
User Registration Flow
With registration enabled, here’s the typical user flow:
- User navigates to the login page
- Clicks Register to create a new account
- Fills in the registration form:
- Name
- Email address
- Password (if password authentication is enabled)
- Confirms email address via verification code
- Optionally sets up second factor authentication
- Gains access to their user profile
The entire process is handled by Zitadel’s built-in UI - you don’t need to build any custom forms initially.
Adding Passwordless Authentication
Once a user has registered, they can add passwordless authentication methods:
Setting Up a Passkey
- Navigate to Password and Security in the user profile
- Click Add Method
- Choose Use my own device
- Give the Passkey a descriptive name
- Follow your browser/device prompts to create the Passkey
- The Passkey can be stored in:
- Your device’s secure enclave
- Password managers like 1Password or Bitwarden
- Hardware security keys
After setting up a Passkey, users can log in without entering a password - they’ll just need to authenticate with their biometric or security key.
Multi-Factor Authentication (MFA)
Zitadel supports multiple second factors for enhanced security:
TOTP (Time-based One-Time Passwords)
Users can scan a QR code with authenticator apps like:
- Google Authenticator
- Microsoft Authenticator
- 1Password
- Authy
FIDO2/WebAuthn Keys
Hardware security keys provide the strongest second factor:
- YubiKey
- Google Titan
- Any FIDO2-compliant key
Login V2 and Custom Authentication UI
While Zitadel provides a complete authentication UI out of the box, you might want something more integrated with your application. That’s where Login V2 comes in.
Login V2 hooks into the Zitadel Session API, allowing you to build custom authentication flows while still leveraging Zitadel’s security features.
To enable Login V2:
- Go to Default Settings
- Navigate to Features
- Scroll down to find Login V2
- Enable the feature
You can then either:
- Fork Zitadel’s TypeScript reference implementation
- Build your own implementation using the Session API directly
We’ll cover Login V2 in detail in an upcoming video, as there’s a lot to explore with custom authentication flows.
Best Practices
For Development
- Start with username/password for simplicity
- Enable all authentication methods to test integration
- Use Zitadel’s default UI to prototype quickly
For Production
- Enable Passkeys for better user experience
- Require MFA for sensitive applications
- Consider disabling password authentication entirely for maximum security
- Implement proper password policies if passwords are required
- Use organization-specific settings for multi-tenant applications
What’s Next?
In the next video, we’ll take a look at configuring third-party OAuth providers like GitHub and Google for social login. This allows users to authenticate with accounts they already have, reducing friction in the registration process.
After that, we’ll dive deep into Login V2 and building custom authentication experiences that seamlessly integrate with your application’s design.
Summary
Zitadel provides flexible authentication options out of the box:
- Traditional username and password
- Modern passwordless authentication with Passkeys
- Multi-factor authentication with TOTP and hardware keys
- Customizable registration and login flows
The key is understanding the settings hierarchy (instance vs organization) and choosing the right authentication methods for your use case. Start simple with the defaults, then customize as your requirements evolve.
Resources
Supporting materials for this module
Documentation
Zitadel Documentation
Official Zitadel documentation
Authentication Basics
Understanding OAuth2 and OpenID Connect
Zitadel Authentication Methods
Official documentation on authentication methods
WebAuthn & Passkeys Guide
Understanding passwordless authentication
FIDO Alliance
Standards for passwordless authentication
Stay Updated
Sign up to receive notifications when new content is available for this course.