Entra IDDeep dive

NPS extension for Microsoft Entra MFA errors: NPS event IDs, log messages and fixes

NPS event IDs and reason codes, AzureMfa log messages, certificate, connectivity and VPN symptoms of the NPS extension for Microsoft Entra MFA, with cause and first check.

The NPS extension for Microsoft Entra multifactor authentication sits between your VPN or RADIUS client and Microsoft Entra ID, so a failure can come from RADIUS, from Active Directory, from the extension or from the cloud. This quick reference lists the Network Policy Server events and reason codes, the messages the extension logs, and the certificate, connectivity and VPN symptoms Microsoft documents, each with the usual cause and the first check.

Codes in this quick reference

  • Event ID 6272: Network Policy Server granted access to a user (healthy result)Event Viewer (Network Policy Server)
  • Event ID 6273: Network Policy Server denied access to a userEvent Viewer (Network Policy Server)
  • Event ID 6273 reason code 16: credentials mismatch (bad password, locked or missing account)Event Viewer (Network Policy Server)
  • Event ID 6273 reason code 21: an NPS extension DLL rejected the request (MFA failed or denied)Event Viewer (Network Policy Server)
  • Event ID 6273 reason code 48: the request matched no network policyEvent Viewer (Network Policy Server)
  • Event ID 6273 reason code 65: the account's dial-in permission denies accessEvent Viewer (Network Policy Server)
  • Event ID 6273 reason code 66: authentication method not enabled on the matching network policyEvent Viewer (Network Policy Server)
  • Event ID 6274: Network Policy Server discarded the request (often a duplicate RADIUS retry)Event Viewer (Network Policy Server)

+ 20 more codes in the tables below.

How this guide is organized: How to read these codes → NPS events and reason codes → Extension log messages and connectivity → Certificate and setup errors → User and VPN symptoms → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these codes. 2. NPS events and reason codes. 3. Extension log messages and connectivity. 4. Certificate and setup errors. 5. User and VPN symptoms. 6. How to verify a fix. Toolbox: AADSTS50076, AADSTS50079, Event ID 6273, New-MgServicePrincipal, Restart-Service.1How to read these codes2NPS events and reason codes3Extension log messages andconnectivity4Certificate and setup errors5User and VPN symptoms6How to verify a fixTOOLBOXAADSTS50076AADSTS50079Event ID 6273New-MgServicePrincipalRestart-ServiceHow this guide is organized: How to read these codes → NPS events and reason codes → Extension log messages and connectivity → Certificate and setup errors → User and VPN symptoms → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these codes. 2. NPS events and reason codes. 3. Extension log messages and connectivity. 4. Certificate and setup errors. 5. User and VPN symptoms. 6. How to verify a fix. Toolbox: AADSTS50076, AADSTS50079, Event ID 6273, New-MgServicePrincipal, Restart-Service.1How to read these codes2NPS events and reason codes3Extension log messages and connectivity4Certificate and setup errors5User and VPN symptoms6How to verify a fixTOOLBOXAADSTS50076AADSTS50079Event ID 6273New-MgServicePrincipalRestart-Service
At a glance: how this guide is organized · 6 sections · 5 key settings and tools

How to read these codes#

Which stage of an NPS extension request failedWhich NPS event does the request log? if 6273: Which Reason Code does the event show? if 16: Credentials mismatch in Active Directory (Wrong password, locked account or unknown user; MFA never ran); if 21: The MFA extension rejected it (AD passed; read the AzureMfa AuthN and AuthZ logs at the same timestamp); if 48, 65 or 66: Fix the network policy or dial-in setting (Policy conditions, the user's Dial-in tab or the authentication method); if 6274: Request discarded: raise the VPN timeout (The VPN resent while the user answered MFA; a few are by design); if No event: Turn on NPS auditing (auditpol for Network Policy Server must report Success and Failure)Which NPS event does therequest log?Which Reason Code does theevent show?FIXCredentialsmismatch inActive DirectoryWrong password,locked account orunknown user; MFAnever ran16FIXThe MFAextensionrejected itAD passed; read theAzureMfa AuthN andAuthZ logs at thesame timestamp21FIXFix the networkpolicy or dial-insettingPolicy conditions, theuser's Dial-in tab orthe authenticationmethod48, 65 or 666273NOTERequestdiscarded: raisethe VPN timeoutThe VPN resentwhile the useranswered MFA; afew are by design6274FIXTurn on NPSauditingauditpol for NetworkPolicy Server mustreport Success andFailureNo eventWhich stage of an NPS extension request failedWhich NPS event does the request log? if 6273: Which Reason Code does the event show? if 16: Credentials mismatch in Active Directory (Wrong password, locked account or unknown user; MFA never ran); if 21: The MFA extension rejected it (AD passed; read the AzureMfa AuthN and AuthZ logs at the same timestamp); if 48, 65 or 66: Fix the network policy or dial-in setting (Policy conditions, the user's Dial-in tab or the authentication method); if 6274: Request discarded: raise the VPN timeout (The VPN resent while the user answered MFA; a few are by design); if No event: Turn on NPS auditing (auditpol for Network Policy Server must report Success and Failure)Which NPS event does the request log?6273Which Reason Code does the event show?16FIXCredentials mismatch in Active DirectoryWrong password, locked account or unknownuser; MFA never ran21FIXThe MFA extension rejected itAD passed; read the AzureMfa AuthN and AuthZlogs at the same timestamp48, 65 or 66FIXFix the network policy or dial-in settingPolicy conditions, the user's Dial-in tab or theauthentication method6274NOTERequest discarded: raise the VPN timeoutThe VPN resent while the user answered MFA; a feware by designNo eventFIXTurn on NPS auditingauditpol for Network Policy Server must reportSuccess and Failure
Figure 1 · Decision tree Which stage of an NPS extension request failed. Find the request's NPS event and Reason Code; the branch tells you whether RADIUS, Active Directory or the MFA extension failed.

The flow explains most errors: the VPN or NAS server sends a RADIUS request to NPS, NPS checks the password against Active Directory, and only if that succeeds does the extension ask Microsoft Entra MFA for the second factor. So decide first which stage failed.

  • NPS events: Event Viewer › Custom Views › Server Roles › Network Policy and Access Services. Most failures are event 6273 or 6274; the Reason Code in the event text tells you why. These events only appear when NPS auditing is on: auditpol /get /subcategory:"Network Policy Server" should report Success and Failure (enable with auditpol /set /subcategory:"Network Policy Server" /success:enable /failure:enable).
  • Extension logs: Event Viewer › Applications and Services Logs › Microsoft › AzureMfa, with separate AuthN and AuthZ logs (Microsoft's docs refer to the AuthZOptCh channel). The extension's entries carry an upper-case error code; admins on Microsoft Q&A report text such as ErrorCode:: ESTS_TOKEN_ERROR Msg:: Unable to get Azure AD access token. plus a link to Microsoft's troubleshooting page.
  • Isolate the extension: back up HKLM\SYSTEM\CurrentControlSet\Services\Authsrv\Parameters, delete the AuthorizationDLLs and ExtensionDLLs values, restart NPS and test again. If NPS now succeeds, the problem is in the MFA layer; restore the key afterward.
  • Identity: the extension looks the user up in Entra ID by the on-premises UPN, or by the attribute in LDAP_ALTERNATE_LOGINID_ATTRIBUTE under HKLM\SOFTWARE\Microsoft\AzureMfa.

NPS events and reason codes#

Event / codeMeaningUsual causeFirst check
6272NPS granted access.Healthy: AD and MFA both passed.Your baseline when testing.
6273 reason 16Credentials mismatch.Wrong password, locked account, or the user doesn't exist on the DC queried. MFA never ran.Account state in AD; lockout source via the logon failure reference.
6273 reason 21An NPS extension DLL rejected the request.AD passed but the MFA extension failed or the user denied the prompt.AzureMfa AuthN/AuthZ logs at the same timestamp.
6273 reason 48No network policy matched.Policy conditions (groups, NAS type, time) exclude the request.Network policy conditions and order.
6273 reason 65Dial-in permission denies access.The user's Dial-in tab is set to deny.Set it to control access through NPS network policy.
6273 reason 66Authentication method not allowed.The VPN uses PAP, MS-CHAPv2 or EAP but the policy doesn't enable it.Network policy constraints.
6274NPS discarded the request.Usually the VPN resent the request while the user was still answering MFA.Expected in small numbers; raise the VPN RADIUS timeout to at least 60 seconds.
13RADIUS message from an invalid client IP.The VPN or NAS isn't in RADIUS Clients.Add the client with the right IP address.
18Message authenticator attribute isn't valid.Shared secret differs between client and NPS.Set a new shared secret on both sides.

Tip: Discarded duplicates are by design. The extension also ignores repeats for up to 10 seconds after a successful response, so a few 6274 events next to a 6272 aren't a fault. Microsoft suggests 90 or 120 seconds of VPN timeout if they flood the log.

Extension log messages and connectivity#

MessageMeaningUsual causeFirst check
ESTS_TOKEN_ERROR (security token error)The extension couldn't get an access token.Client certificate missing or unassociated, login.microsoftonline.com unreachable, or (as admins report) TLS certificate validation failures.Restart NPS, then check the certificate and its tenant association (below).
HTTP connect errors, every authentication failsMFA service endpoints unreachable.Firewall or proxy.adnotifications.windowsazure.com and strongauthenticationservice.auth.microsoft.com on TCP 443.
User not found in the HTTP logEntra ID has no matching user.User not synced, or a UPN mismatch.Entra Connect running; user present in both directories; alternate login ID.
IP_WHITE_LIST_WARNING::IP Whitelist is being ignored as the source IP is missing in the RADIUS request NasIpAddress attribute.The IP exception list can't be applied.The VPN doesn't send the NAS-IP-Address attribute.RADIUS attributes on the VPN.
AuthZOptCh error at service startIP_WHITELIST value doesn't exist.The installer doesn't create it.Ignore, or create the value empty.
Errors for non-RADIUS requestsThe extension logs an error for any request that isn't RADIUS.NPS server shared with other services.A dedicated NPS server for MFA.
Azure Government or 21Vianet tenant failsDefault endpoints point to the global cloud.AZURE_MFA_HOSTNAME, AZURE_MFA_RESOURCE_HOSTNAME and STS_URL not set.Set the cloud's values, restart NPS.

The server needs TCP 443 to login.microsoftonline.com, credentials.azure.com, strongauthenticationservice.auth.microsoft.com and adnotifications.windowsazure.com. RADIUS itself uses UDP 1812/1645 (authentication) and 1813/1646 (accounting) between the VPN and NPS. The NPS server must authenticate the request itself; it can't proxy RADIUS to another server.

Certificate and setup errors#

ErrorMeaningUsual causeFirst check
Service principal was not found (setup script)The tenant lacks the Azure Multi-Factor Auth Client service principal.Never created in this tenant.Create it with New-MgServicePrincipal (below), rerun the script.
Service principal disabledSetup script can't use the service principal.Enabled for users to sign-in? is No.Entra ID › Enterprise apps › Azure Multi-factor Auth Client › Properties.
Client certificate expiredTokens can't be requested.Script certificates last two years.Rerun AzureMfaNpsExtnConfigSetup.ps1 with the same tenant ID on each server.
Expired certificate left in the storeExtension fails to start despite a valid certificate.Old certificate not removed after renewal.Delete expired certificates from the computer store.
Certificate not associated with the tenantEntra ID doesn't trust this server.Script failed halfway, or the certificate was replaced manually.Compare thumbprints with the service principal's key credentials.
Own certificate ignoredExtension can't use it.No Client Authentication purpose, no READ for NETWORK SERVICE, or (version 1.2.2677.2 and earlier) a subject other than CN=<TenantID>,OU=Microsoft NPS Extension.From version 1.2.2893.1, set CLIENT_CERT_IDENTIFIER to the thumbprint.
Setup script can't download modulesMicrosoft Graph PowerShell install fails.TLS 1.2 off in the session, or setup URLs blocked.Run [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 first.
PowerShell
# Create the missing service principal (documented app ID), then rerun the setup script
Connect-MgGraph -Scopes 'Application.ReadWrite.All'
New-MgServicePrincipal -AppId 981f26a1-7f43-403b-a875-f8b09b8cd720 -DisplayName "Azure Multi-Factor Auth Client"
cd "C:\Program Files\Microsoft\AzureMfa\Config"
.\AzureMfaNpsExtnConfigSetup.ps1

The script signs in to Entra ID (Microsoft documents a Global Administrator for this), asks for the tenant ID, creates the certificate, grants NETWORK SERVICE access to its key and restarts NPS. Give each NPS server its own certificate so you can renew them one at a time.

User and VPN symptoms#

SymptomMeaningUsual causeFirst check
MFA fails for some users onlyThey aren't enrolled for MFA.REQUIRE_USER_MATCH not set (same as TRUE) fails unenrolled users.Register them; FALSE only during onboarding, never in production.
Can't sign in, password expiredThe extension doesn't support password change.Expired AD password.Change it elsewhere first, for example through SSPR with writeback.
Asked for a code instead of Approve/DenyTOTP is used because NPS can't do number matching.Extension 1.2.2216.1 or later with a TOTP method registered.Expected; users without TOTP still get Approve/Deny.
No SMS or code option on the VPNMethod not available over this protocol.MS-CHAPv2 and EAP support only phone call and app notification; PAP supports all methods.The VPN's RADIUS protocol and input field.
Code sign-in works, wrong VPN accessNetwork policy RADIUS attributes aren't returned.Code-based (OTP) methods.Microsoft's CrpUsernameStuffing script.
SSPR-only users get MFA promptsMFA is enforced when StrongAuthenticationMethods is set.SSPR registration populated it.Expected; use combined registration.
Custom phone call greeting not playedDefault EN-US call used.Custom phone call settings aren't supported.None; by design.
Extension won't work at allUnsupported license.Consumption-based MFA licenses.Entra ID P1/P2 or EMS licenses.

For cloud sign-in MFA errors (AADSTS50076, AADSTS50079 and friends) see fixing MFA and authentication-strength sign-in errors.

How to verify a fix#

  1. Endpoints. From the NPS server every line should show True:
    PowerShell
    'login.microsoftonline.com','credentials.azure.com','strongauthenticationservice.auth.microsoft.com','adnotifications.windowsazure.com' |
        ForEach-Object { Test-NetConnection -ComputerName $_ -Port 443 | Select-Object ComputerName, TcpTestSucceeded }
  2. Certificate. Check expiry locally, then compare the thumbprint with what Entra ID holds:
    PowerShell
    Get-ChildItem Cert:\LocalMachine\My | Where-Object Subject -like '*Microsoft NPS Extension*' |
        Select-Object Subject, NotAfter, Thumbprint
    Connect-MgGraph -Scopes 'Application.Read.All'
    (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'" -Property "KeyCredentials").KeyCredentials |
        Format-List KeyId, DisplayName, StartDateTime, EndDateTime
  3. Test sign-in with an account registered for MFA. Good: an Event 6272 for that user, no new errors in the AzureMfa logs, and no 6273 reason code 21.
  4. Health check. Microsoft also publishes an NPS extension health check script that runs basic checks; use it before opening a support case.

Watch out: To upgrade the extension without a reboot, uninstall the old version, run the new installer and restart the Network Policy Server service (Restart-Service IAS). Do one server at a time behind your load balancer.

References#

Written and checked against current Microsoft Learn documentation. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

Written by

Omer Eltayeb

Intune Subject Matter Expert in Cairo, Egypt, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Configuration Manager, Microsoft Entra ID, Microsoft Defender, Exchange and Microsoft 365 with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)