Share via

Okta as OIDC based external identity provider in Microsoft Entra External ID: provider not appearing on login screen

Anuj Sharma 20 Reputation points
2026-05-03T09:59:03.9866667+00:00

Environment / context

  • Microsoft Entra External ID (External ID) as the CIAM provider for our tenant
  • Okta configured as an OpenID Connect (OIDC) external identity provider in the External ID tenant
  • Created an External ID user flow and added Okta as a custom OIDC IdP
  • Next.js app using NextAuth v4 as the client

What I configured

Okta side:

  • Created an OIDC Web Application in Okta Admin Console
  • Grant type: Authorization Code
  • Added the following redirect/callback URLs to the Okta app:

https://<mytenant>.ciamlogin.com/<tenantId>/federation/oauth2

https://<mytenant>.ciamlogin.com/<mytenant>.onmicrosoft.com/federation/oauth2

https://<mytenant>.ciamlogin.com/<tenantId>/oauth2/v2.0/authresp

https://<mytenant>.ciamlogin.com/<mytenant>.onmicrosoft.com/oauth2/authresp

Entra External ID side:

  • External Identities → All identity providers → New OpenID Connect provider
  • Filled in:
    • Metadata URL: https://<okta-domain>.okta.com/oauth2/default/.well-known/openid-configuration
    • Client ID: Okta app client ID
    • Client Secret: Okta app client secret
    • Scope: openid profile email
    • Response type: code
    • Response mode: form_post
  • User flow type: Sign up and sign in
  • Added the Okta OIDC provider to the user flow under Identity providers

Expected result

Okta should appear as a sign-in option on the External ID hosted login screen, the same way Google and Entra ID do when configured as OIDC providers.


Actual result

The Okta OIDC provider does not appear on the login screen presented by the External ID user flow, despite being configured under All identity providers and added to the user flow.

Notably, the following combinations are working in the same tenant and user flow:

  • ✅ Google as OIDC external IdP — appears and works correctly
  • ✅ Microsoft Entra ID as OIDC external IdP — appears and works correctly
  • ✅ Okta as SAML-based external IdP — appears and works correctly
  • ❌ Okta as OIDC-based external IdP — does not appear on login screen

This tells me the issue is not with the user flow itself, not with OIDC federation in general, and not with Okta as an IdP in general — it is specific to Okta running over the OIDC path inside External ID.

What I've already tried

  • Verified Okta app has Authorization Code grant type and a valid client secret
  • Added all four redirect URL variants (both tenant ID GUID and onmicrosoft.com domain formats) to the Okta app registration
  • Re-checked metadata URL, client ID, and client secret in the External ID OIDC provider config
  • Confirmed the user flow type is Sign up and sign in (not a legacy B2C flow)
  • Verified response_modes_supported in Okta's discovery document includes form_post
  • Verified Okta's discovery document returns email in claims_supported
  • Tried both Okta custom auth server (/oauth2/default) and org-level issuer — neither makes the provider appear
  • Compared Okta's OIDC discovery document against Google's and Entra's — no obvious disqualifying differences found
  • Reviewed Microsoft docs on custom OIDC IdPs in External ID — configuration matches documented steps
  • Confirmed the Okta SAML IdP works in the same user flow — so the problem is isolated to Okta + OIDC specifically

Questions

  1. Why does the Okta OIDC provider not appear on the External ID login screen despite being configured correctly and added to the user flow?
  2. Is there a known incompatibility between Microsoft Entra External ID's custom OIDC federation and Okta specifically — given that Google and Entra work as OIDC IdPs and Okta itself works as a SAML IdP in the same flow?
  3. Is there something in Okta's OIDC discovery document or token response format that External ID silently rejects, causing the provider to be hidden rather than throwing an explicit error?
  4. Are the redirect/callback URLs above the correct format for Okta → External ID OIDC federation?
Microsoft Security | Microsoft Entra | Microsoft Entra External ID

Answer accepted by question author

  1. Rukmini 40,135 Reputation points Microsoft External Staff Moderator
    2026-05-11T09:08:40.8433333+00:00

    Hello Anuj Sharma

    The problem seems to be with how Microsoft Entra External ID verifies the subclaim for custom OIDC providers before displaying them on the sign-in page, according to a check of the Okta claims setup. Your Okta subclaim is now set up as follows: (appuser != null)? appuser.userName: app.clientId appuser.Since userName is regarded as volatile, it might not meet External ID requirements for a stable, immutable unique identity.

    Instead of displaying a clear error when this validation fails, External ID quietly conceals the OIDC provider.

    Please check the below:

    If the resolution was helpful, kindly take a moment to click on 210246-screenshot-2021-12-10-121802.pngand click on Yes for was this answer helpful. And, if you have any further query do let us know.

    Was this answer helpful?

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.