Managing external identities to enable secure access for partners, customers, and other non-employees
Thanks for choosing Entra External ID to authenticate external consumers in your CIAM scenario - great to see you leveraging Native Auth with OTP on mobile.
What you’re observing with refresh tokens expiring after ~12 hours when using Native Authentication with OTP on iOS and Android aligns with behavior others have reported in similar scenarios.
If your goal is to improve user experience and reduce frequent reauthentication, the recommended approach is to use Sign-in Frequency via Conditional Access session controls rather than relying on refresh token lifetime.
- Sign-in Frequency lets you define how often a user must reauthenticate
- It applies to native mobile apps (iOS and Android)
- It provides a more predictable and controlled session experience
You can learn more here:
Recommendation (tokens vs. session controls)
A simple way to think about this:
- Refresh tokens control how the app silently gets new access tokens in the background
- Sign-in Frequency controls when the user is required to sign in again
In Entra External ID (especially with OTP scenarios), refresh token lifetime is not the primary lever for controlling user sessions.
👉 Recommendation: Use Sign-in Frequency as the source of truth for session duration, and treat refresh tokens as an implementation detail managed by the platform.
This approach gives you:
- More predictable UX on mobile
- Alignment with supported controls in External ID
- Flexibility to adjust session duration without depending on token lifetime behavior
In short: use refresh tokens for silent renewal, and use Sign-in Frequency to define the user experience.