Managing external identities to enable secure access for partners, customers, and other non-employees
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:
- The subject/issuer pair used as the immutable external identity key is inconsistent (tenant ID appended in one flow but not the other).
- 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:
- Use a stable external identity attribute for matching
Ensure that the identifier coming from PingOne (typicallysubor 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.
- 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.
- Align matching when email and UPN differ
If PingOne is sending an email address that does not match the user’suserPrincipalNamein Entra, and the matching rule is based onuserPrincipalName, 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
userPrincipalNameand 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.
userPrincipalName. - Add a property on the application user to hold the Entra
- 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: