Managing external identities to enable secure access for partners, customers, and other non-employees
- Smart lockout and OTP validation
Smart lockout, as documented, is a password protection feature that applies to password-based sign-in attempts. It tracks failed password attempts, uses bad password hash tracking, and locks accounts based on configurable lockout thresholds and durations.
All available documentation in the provided context describes Smart lockout only in relation to password-based authentication (for example, sign-ins where a password is entered and validated by Microsoft Entra ID or on-premises AD via pass-through authentication). There is no indication in the provided documentation that Smart lockout applies to email one-time passcode (OTP) validation attempts.
Therefore, based on the documentation in scope, Smart lockout is a password-focused control and is not described as applying to email OTP verification failures.
- Multiple simultaneously valid OTP codes and protections
For native authentication with email one-time passcode, the documented behavior is:
- After the app verifies the user's email with OTP, it receives tokens.
- If delivery of the OTP is delayed or not delivered, the user can request another OTP.
- When Microsoft Entra resends a one-time passcode, it invalidates the previously sent code if it has not yet been verified.
This means that, for the documented native auth email OTP flow, multiple simultaneously valid OTPs for the same user are not expected: when a new OTP is sent, any previous unverified OTP is invalidated.
The documentation in scope does not describe additional rate limiting or lockout behavior specific to email OTP verification attempts beyond this “resend invalidates previous code” behavior, nor does it describe multiple concurrently valid OTPs as a supported or intended behavior.
Related protections for OTP-based and sign-up/sign-in scenarios in External ID that are documented include:
- Sign-up protection controls such as:
- WAF bot protection to block high-volume automated OTP triggering.
- Reputation-based email filtering via custom extensions.
- IP-based filtering and reputation checks via custom extensions.
- Monitoring and alerting on excessive OTPs from a single IP/ASN or location.
- Sign-up error handling and specific OTP-related error codes (for example, 50181 for “Unable to validate the OTP” and 50182 for “OTP is already expired”), with guidance for users to request a new OTP.
These controls are focused on reducing automated abuse and fraud in OTP-based flows, but the provided documentation does not explicitly describe:
- Smart lockout being applied to OTP validation failures.
- A built-in lockout or rate limit specifically on OTP validation attempts for sign-in.
If behavior in a specific CIAM user flow appears to differ from the documented native auth behavior (for example, multiple OTPs seemingly valid at once), the next step, per the sign-up troubleshooting guidance, is to collect sign-up/sign-in logs and error codes and then open a support request for further investigation.
References:
- Protect user accounts from attacks with Microsoft Entra smart lockout
- Microsoft Entra pass-through authentication: Quickstart
- Authentication and Conditional Access for External ID
- Microsoft Entra External ID deployment guide for security operations
- How to troubleshoot Microsoft Entra sign-up errors
- Native authentication API reference
- How to migrate MFA and SSPR policy settings to the Authentication methods policy for Microsoft Entra ID