SSO from PingOne to Entra app failing; Not matching on sub value and can't find by email

Eric Whiteside 0 Reputation points
2026-03-31T15:02:44.4433333+00:00

I am trying to implement SSO from PingOne to my Azure app I have registered in Entra External ID. When I don't have the PingOne account pre-provisioned, the sign-in flow provisions the account but with a bad value for the "Issuer" (the tenant id is incorrectly appended to the end of the issuer URL). This leads to a AADSTS500208 error. If I use Graph API to pre-provision the user with the proper "Issuer" URL, I get a message on the Entra prompt that says "Account Already Exists. Click next to sign in". Clicking Next gives the following error message:
We couldn't find an account with this email address

Microsoft Security | Microsoft Entra | Microsoft Entra External ID

1 answer

Sort by: Oldest
  1. AI answer

    2026-03-31T15:03:05.91+00:00

    The behavior indicates that the external identity is not being matched consistently between PingOne and Microsoft Entra ID. There are two separate but related issues:

    1. The subject/issuer pair used as the immutable external identity key is inconsistent (tenant ID appended in one flow but not the other).
    2. The email address being shown on the prompt is not the attribute Entra is actually using to locate the user, so the “account already exists” banner and the “we couldn’t find an account with this email address” error appear together.

    To stabilize SSO and matching:

    1. Use a stable external identity attribute for matching
      Ensure that the identifier coming from PingOne (typically sub or another unique ID) is mapped to a property that Entra can use consistently to match users. If existing users were created with a different identifier or format, matching will fail. The recommended pattern is:
      • Pick a single, stable identifier (for example, a PingOne user ID, employee ID, or a stable email/UPN) that exists both in PingOne and in Entra.
      • Store that value on all users in the application or in Entra, and include it in the matching rule so that the same value is used every time.
      The documented approach for this type of mismatch is:
      • Select or add a property in the application’s user schema.
      • Populate that property on all users with a value that is already present on users in Entra (for example, email or employee ID).
      • Update the Entra provisioning attribute-mappings configuration so that this property is included in the matching rule.
      This prevents the situation where Entra provisions a new user with one issuer/subject combination, but later sign-ins present a different combination (for example, issuer URL with tenant ID appended), which Entra treats as a different external identity.
    2. Align matching when email and UPN differ
      If PingOne is sending an email address that does not match the user’s userPrincipalName in Entra, and the matching rule is based on userPrincipalName, Entra will not find the account even though the email looks correct on the prompt. In that case either:
      • Add a property on the application user to hold the Entra userPrincipalName and populate it for all users, then use that property in the matching rule; or
      • Change the matching rule to use a property that actually holds the email address being sent by PingOne.
      This is the documented fix when the application stores email while Entra is matching on userPrincipalName.
    3. Clean up and re-provision if necessary
      Because some users were provisioned with an incorrect issuer value (tenant ID appended), those objects may now be “orphaned” relative to the corrected configuration. After aligning the identifier and matching rules as above, it may be necessary to:
      • Remove the incorrectly provisioned external user objects, and
      • Let them be re-provisioned via the corrected PingOne SSO flow or via Graph with the same stable identifier that PingOne will send at sign-in.

    Once the same stable identifier is used in PingOne, in the Entra user object, and in the provisioning/matching rules, Entra will stop creating mismatched identities, and the “account already exists / couldn’t find an account with this email address” combination will no longer occur.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer 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.