Your users will encounter passkey prompts whether you're ready or not. Google, Microsoft, and Apple are pushing FIDO2-based authentication across their platforms, and your enterprise identity stack needs a plan before users start creating passkeys in consumer accounts that you can't govern.
This guide walks you through deploying passkeys in a controlled enterprise environment. You'll configure FIDO2 authentication, integrate it with your existing Identity Provider, and establish governance controls to prevent shadow enrollment.
The Problem: Consumer Passkey Adoption Is Outpacing Enterprise Governance
The FIDO Alliance has spent over a decade building the standards that make passkeys work. Now that major platforms support them, your users are creating passkeys for personal Gmail and Microsoft accounts using the same devices they use for work.
Here's what makes this urgent: passkeys stored in consumer password managers (iCloud Keychain, Google Password Manager) live outside your MDM policies and identity governance controls. When a user leaves, you can't revoke those credentials. When they authenticate to a SaaS app using a passkey synced through their personal Apple ID, you have no visibility into that authentication event in your SIEM.
Deploying enterprise-managed passkeys solves this. You control the authenticator lifecycle, enforce device compliance policies, and maintain audit trails that survive user departures.
What You Need Before Starting
Identity Infrastructure:
- An Identity Provider that supports FIDO2 (Okta, Microsoft Entra ID, Ping Identity, or Auth0)
- A user directory with active accounts (Active Directory, LDAP, or cloud directory)
- SAML or OAuth 2.0 federation configured for your target applications
Device Management:
- MDM solution deployed to corporate devices (Intune, Jamf, Workspace ONE)
- Device compliance policies defined (OS version, encryption, patch level)
- Ability to push configuration profiles to managed devices
Technical Requirements:
- HTTPS endpoints for your Identity Provider (FIDO2 requires TLS)
- User devices running supported operating systems (Windows 10 1903+, macOS Ventura+, iOS 16+, Android 9+)
- Access to your IdP's admin console with privileges to modify authentication policies
Governance Decisions:
- Which user populations will get passkeys first (start with IT and security teams)
- Whether passkeys will be optional, preferred, or required
- Fallback authentication methods (TOTP, SMS, or Multi-Factor Cryptographic Device)
- Attestation requirements (do you need to verify the authenticator model?)
Step-by-Step Implementation
Phase 1: Configure Your Identity Provider
For Microsoft Entra ID:
- Navigate to Azure Portal → Entra ID → Security → Authentication methods
- Enable FIDO2 security key under Method policies
- Set Attestation enforcement to "Required" if you need to restrict authenticator types
- Define allowed FIDO2 key types using the AAGUIDs from your approved vendor list
- Assign the policy to your pilot user group
For Okta:
- Go to Security → Authenticators → Add Authenticator
- Select "Security Key or Biometric Authenticator (FIDO2 WebAuthn)"
- Configure attestation: choose "Direct" for full device verification
- Edit your authentication policy to include FIDO2 as an allowed factor
- Set enrollment requirements: "Optional" for pilot, "Required" for production rollout
For Ping Identity:
- Access PingOne admin console → Authentication → Authentication Policies
- Create a new policy or edit existing
- Add FIDO2 as an authentication method
- Configure registration flow: enable "User self-service enrollment"
- Set relying party ID to match your domain
Phase 2: Deploy to Pilot Users
Create a pilot group of 20-50 users from your IT organization. These users will surface edge cases before you expand.
Enrollment Process:
- Send pilot users to your IdP's self-service portal
- Guide them to Security Settings → Authentication Methods
- Click "Add passkey" or "Register FIDO2 device"
- The browser will prompt for platform authenticator (Face ID, Windows Hello, Touch ID) or external authenticator
- User completes biometric or PIN verification
- Passkey is registered and appears in their authentication methods list
Test Authentication Flow:
- Have pilot users sign out completely
- Navigate to a SAML-federated application
- Redirect to IdP login page
- Enter username (or skip if using discoverable credentials)
- Browser prompts for passkey authentication
- User verifies with biometric or device PIN
- User lands in target application without entering a password
Phase 3: Configure Conditional Access
Lock down where and how passkeys can be used.
Microsoft Entra ID Conditional Access:
Policy: Require Compliant Device for Passkey Enrollment
- Users: All users
- Cloud apps: Microsoft Entra ID user registration
- Conditions: User actions → Register security information
- Grant: Require device to be marked as compliant
Okta Device Trust Policy:
- Navigate to Security → Device Trust
- Create policy: "Passkey Enrollment Requires Managed Device"
- Set condition: Device management state = Managed
- Apply to authentication policy controlling FIDO2 enrollment
This prevents users from enrolling passkeys on unmanaged personal devices.
Phase 4: Expand Deployment
After two weeks with the pilot group:
- Review authentication logs for FIDO2 events
- Check for failed enrollments or authentication attempts
- Interview pilot users about friction points
- Document common support questions
Then expand in phases:
- Week 3-4: IT department (200-500 users)
- Week 5-6: Security and compliance teams
- Week 7-8: Executive leadership
- Week 9+: General user population in batches of 1,000
For each phase, send communication 48 hours before enabling the policy. Include screenshots of the enrollment flow and a FAQ covering device compatibility.
Validation: How to Verify It Works
Test Authentication Success:
Run these tests with a pilot user account:
- Authenticate to your IdP directly using a passkey
- Access a SAML-federated SaaS application (confirm single sign-on works)
- Access an OAuth 2.0 application (verify Authorization Code Flow completes)
- Test from multiple device types (Windows laptop, macOS, iPhone)
Verify Audit Trails:
Check your SIEM for these events:
- FIDO2 enrollment events (source: IdP audit log)
- Successful FIDO2 authentications with device metadata
- Failed authentication attempts (wrong device, user cancelled)
- Passkey revocation events
Query your IdP's audit API for FIDO2-specific event types. In Microsoft Entra ID, filter for "Register security info" and "User authenticated using FIDO2." In Okta, search for system.authenticator.lifecycle.enroll and policy.evaluate_sign_on.
Confirm Governance Controls:
- Remove a test device from MDM
- Verify the user can't enroll new passkeys on that device
- Confirm existing passkeys on non-compliant devices are blocked from authentication
- Test passkey revocation: delete a user's passkey from the IdP, confirm they can't authenticate
Check Fallback Methods:
Disable a user's passkey and verify they can still authenticate using your defined fallback (TOTP, SMS, or hardware token). Never deploy passkeys as the only authentication method until you've tested account recovery flows.
Maintenance and Ongoing Tasks
Monthly:
- Review passkey enrollment rates by department
- Identify users with multiple passkeys and validate each device is managed
- Audit users still authenticating with passwords; send targeted enrollment reminders
- Check for deprecated authenticator models (reference FIDO Alliance metadata)
Quarterly:
- Review attestation reports to identify unauthorized authenticator types
- Update allowed AAGUID list based on new approved devices
- Test disaster recovery: can you restore passkey registrations from backup?
- Audit Conditional Access policies for gaps (unmanaged devices, legacy authentication)
Annually:
- Rotate FIDO2 server certificates
- Review and update authentication policy based on threat landscape
- Evaluate new FIDO2 features (discoverable credentials, large blob storage)
- Conduct tabletop exercise: what happens if your IdP's FIDO2 service fails?
User Lifecycle Events:
When a user leaves:
- Revoke all registered passkeys immediately (same day as termination)
- Verify revocation appears in audit log
- Confirm the user can't authenticate using cached credentials
When a device is lost:
- User reports loss through helpdesk
- Admin locates passkey by device identifier in IdP console
- Delete the specific passkey
- User enrolls replacement passkey on new device
Support Escalations:
Build a runbook for common issues:
- "Passkey prompt doesn't appear" → Check browser version, verify HTTPS, confirm FIDO2 enabled in policy
- "This device can't be used" → Validate device compliance state in MDM
- "I deleted my passkey by accident" → Guide user through re-enrollment, verify old passkey is revoked
- "Passkey works on laptop but not phone" → Check cross-platform authenticator sync settings, confirm both devices are managed
The FIDO Alliance provides implementation guidance and a conformance test suite at fidoalliance.org. Use their tools to validate your server configuration before production rollout.
Your users are going to use passkeys. The question is whether they'll use ones you control or ones synced through consumer accounts you can't see. Deploy now, govern tightly, and you'll eliminate password resets while strengthening your authentication posture.





