Implements passwordless authentication using Microsoft Entra ID with FIDO2 security keys, Windows Hello for Business, Microsoft Authenticator passkeys, and certificate-based authentication to eliminate password-based attacks. Activates for requests involving passwordless deployment, FIDO2 passkey configuration, phishing-resistant MFA, or Microsoft Entra authentication method policies.
Implements passwordless authentication using Microsoft Entra ID with FIDO2 security keys, Windows Hello for Business, Microsoft Authenticator passkeys, and certificate-based authentication to eliminate password-based attacks. Activates for requests involving passwordless deployment, FIDO2 passkey configuration, phishing-resistant MFA, or Microsoft Entra authentication method policies.
Regulatory or internal mandate requires phishing-resistant MFA (Executive Order 14028, CISA guidance)
Deploying FIDO2 security keys or Windows Hello for Business across the enterprise
Migrating from legacy MFA (SMS, phone call) to phishing-resistant authentication methods
Implementing passkey support for hybrid or cloud-joined Windows devices
Reducing helpdesk costs from password reset requests
Do not use for environments that cannot support modern authentication protocols; legacy applications using NTLM or basic authentication must be migrated first.
Common Misconfigurations & Verification
Entra "passwordless" frequently coexists with phishable fallbacks that attackers simply pivot to:
Conditional Access stuck in report-only: the phishing-resistant policy is built but state = enabledForReportingButNotEnforced, so passwords still work. Confirm state = enabled for the auth-strength policy and that admin roles map to the Phishing-resistant MFA built-in strength (FIDO2/WHfB/x509), not just "MFA."
SMS/voice/TOTP still enabled as fallback: registering a passkey does nothing if a phished SMS code grants the same access. Verify with Graph: GET /policies/authenticationMethodsPolicy/authenticationMethodConfigurations/sms (and voice) return state = disabled, and that no legacy per-user MFA leaves SMS registered.
FIDO2 attestation/key restrictions off:isAttestationEnforced = false or empty aaGuids lets any (including virtual) authenticator register. Confirm attestation is enforced and the AAGUID allow-list matches approved YubiKey/Titan models.
Legacy auth not blocked: verify a Conditional Access policy blocks exchangeActiveSync/other client app types, then check sign-in logs (clientAppUsed) show zero successful legacy-protocol logins.
Single key, no backup, TAP left long-lived: confirm ≥2 FIDO2 methods per privileged user and that Temporary Access Pass is isUsableOnce / short lifetime, not a standing password substitute.
Break-glass accounts wrongly forced into passwordless: confirm excluded emergency accounts exist, are monitored, and have an alert on every sign-in.
Prerequisites
Microsoft Entra ID P1 or P2 license (Azure AD Premium)
Windows 10/11 22H2+ for Windows Hello for Business deployment
FIDO2-compliant security keys (YubiKey 5 Series, Feitian BioPass, Google Titan)
Microsoft Authenticator app 6.8+ for passkey support on iOS 16+/Android 14+
Hybrid Azure AD join or Azure AD join configured for Windows devices
Conditional Access policies configured for authentication strength
Workflow
Step 1: Configure Authentication Methods Policy
Enable passwordless authentication methods in Microsoft Entra:
# Connect to Microsoft Graph
Connect-MgGraph -Scopes "Policy.ReadWrite.AuthenticationMethod", "User.ReadWrite.All"
# Enable FIDO2 Security Key authentication method
$fido2Policy = @{
"@odata.type" = "#microsoft.graph.fido2AuthenticationMethodConfiguration"
state = "enabled"
isAttestationEnforced = $true
isSelfServiceRegistrationAllowed = $true
keyRestrictions = @{
isEnforced = $true
enforcementType = "allow"
aaGuids = @(
"cb69481e-8ff7-4039-93ec-0a2729a154a8", # YubiKey 5 Series
"ee882879-721c-4913-9775-3dfcce97072a", # YubiKey 5 NFC
"fa2b99dc-9e39-4257-8f92-4a30d23c4118", # YubiKey 5C NFC
"2fc0579f-8113-47ea-b116-bb5a8db9202a", # YubiKey Bio
"73bb0cd4-e502-49b8-9c6f-b59445bf720b" # Google Titan
)
}
includeTargets = @(
@{
targetType = "group"
id = "all_users" # Or specific security group ID
}
)
}
Update-MgPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration `
-AuthenticationMethodConfigurationId "fido2" `
-BodyParameter $fido2Policy
# Enable Microsoft Authenticator with passkey support
$authenticatorPolicy = @{
"@odata.type" = "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration"
state = "enabled"
featureSettings = @{
displayAppInformationRequiredState = @{
state = "enabled"
includeTarget = @{
targetType = "group"
id = "all_users"
}
}
displayLocationInformationRequiredState = @{
state = "enabled"
includeTarget = @{
targetType = "group"
id = "all_users"
}
}
companionAppAllowedState = @{
state = "enabled"
}
}
includeTargets = @(
@{
targetType = "group"
id = "all_users"
authenticationMode = "any"
}
)
}
Update-MgPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration `
-AuthenticationMethodConfigurationId "microsoftAuthenticator" `
-BodyParameter $authenticatorPolicy
# Enable Windows Hello for Business
$whfbPolicy = @{
"@odata.type" = "#microsoft.graph.windowsHelloForBusinessAuthenticationMethodConfiguration"
state = "enabled"
pinMinimumLength = 6
pinMaximumLength = 127
pinLowercaseCharactersUsage = "allowed"
pinUppercaseCharactersUsage = "allowed"
pinSpecialCharactersUsage = "allowed"
securityKeyForSignIn = "enabled"
includeTargets = @(
@{
targetType = "group"
id = "all_users"
}
)
}
Update-MgPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration `
-AuthenticationMethodConfigurationId "windowsHelloForBusiness" `
-BodyParameter $whfbPolicy
Write-Host "Passwordless authentication methods enabled successfully"
Fast Identity Online 2 standard enabling passwordless authentication using public-key cryptography bound to hardware authenticators or platform credentials
Passkey
FIDO2 credential that can be device-bound (security key) or synced across devices, providing phishing-resistant authentication without passwords
Windows Hello for Business
Windows platform authenticator using PIN, fingerprint, or facial recognition backed by TPM-protected asymmetric keys for passwordless sign-in
Cloud Kerberos Trust
Deployment model for hybrid WHfB that uses Azure AD Kerberos to authenticate to on-premises resources without requiring PKI certificate infrastructure
Temporary Access Pass
Time-limited passcode issued by admins enabling users to register passwordless methods or recover access when their primary method is unavailable
Authentication Strength
Conditional Access capability in Microsoft Entra that specifies which authentication method combinations satisfy MFA requirements for a given policy
Tools & Systems
Microsoft Entra Admin Center: Portal for configuring authentication methods, Conditional Access policies, and monitoring sign-in analytics
Microsoft Intune: MDM/MAM platform for deploying Windows Hello for Business configuration profiles to managed devices
Microsoft Graph API: Programmatic interface for managing authentication methods, policies, and generating adoption reports
FIDO2 Security Keys: Hardware authenticators (YubiKey, Feitian, Google Titan) storing cryptographic credentials for phishing-resistant authentication
Common Scenarios
Scenario: Enterprise-Wide Passwordless Migration
Context: Organization with 5,000 users plans to eliminate passwords within 12 months after experiencing a phishing attack that compromised 47 accounts. Current state: 60% use SMS MFA, 30% use Authenticator app, 10% have no MFA.
Approach:
Phase 1 (Month 1-2): Enable FIDO2 and WHfB authentication methods in report-only Conditional Access
Phase 2 (Month 2-3): Deploy WHfB to all managed Windows devices via Intune with Cloud Kerberos Trust
Phase 3 (Month 3-5): Distribute FIDO2 security keys to executives, IT admins, and finance (highest-risk users first)
Phase 4 (Month 5-8): Enable Authenticator passkeys for mobile-primary users and field workers
Phase 5 (Month 8-10): Switch Conditional Access from report-only to enforced for phishing-resistant auth