AADSTS1100001 from EEID custom auth extension onAttributeCollectionSubmit — no SP sign-in logs, all visible config verified

Jeremy Norton 0 Reputation points
2026-04-23T22:38:52.34+00:00

A signup attempt against an EEID (CIAM) tenant fails with AADSTS1100001 ("No service principal found in directory") at the onAttributeCollectionSubmit custom extension call. The Function App receives zero inbound requests during the failure, and zero entries appear in AADServicePrincipalSignInLogs for any SP in the entire tenant during the failure window — confirming the failure is at EEID's pre-token-acquisition stage, not at our HTTP endpoint.

Tenant: EEID xxxxxxxxx (xxxxxxxx.onmicrosoft.com) Reproducible from: "Run user flow" in the EEID portal (so frontend / MSAL config is exonerated) Recent failing correlation IDs:

Setup:

  • User flow prism-signup-signin (id xxxxxx) — freshly recreated to eliminate stale state
  • onAttributeCollectionSubmit.customExtension.authenticationConfiguration.resourceId = api://xxxxxxxx.azurewebsites.net/2xxxxxxxxx
  • endpointConfiguration.targetUrl = https://xxxxxxxx.azurewebsites.net/api/registration-validator
  • Claims Provider app appId xxxxxxxx, objectId xxxxxxxx
  • Claims Provider SP objectId xxxxxxx

What I have already verified:

  1. Claims Provider SP accountEnabled: true, disabledByMicrosoftStatus: null
  2. identifierUris on the app: both api://{appId} and api://{hostname}/{appId}servicePrincipalNames on the SP includes both plus the bare appId
  3. App role CustomAuthenticationExtension.Receive.Payload (id xxxxxxxb, allowedMemberTypes: ["Application"], isEnabled: true) defined on the Claims Provider app
  4. That app role is granted to the EEID Azure Active Directory Authentication Extensions SP (local objectId xxxxxxx8, appId xxxx)
  5. Claims Provider SP has admin-consented CustomAuthenticationExtension.Receive.Payload on Microsoft Graph (id xxxxx)
  6. requiredResourceAccess on Claims Provider has a single (deduped) entry for the above
  7. signInAudience tested as both AzureADMyOrg and AzureADMultipleOrgs — same error
  8. requestedAccessTokenVersion: 2
  9. Zero conditional access policies in the tenant
  10. Tenant App SP (id xxx, appId xxxxx) enabled, healthy, registered as the includeApplications entry on the flow
  11. signIns and directoryAudits queried via Graph for all failing correlation IDs — both empty. SP sign-in logs across the entire tenant in the failure windows: also empty.
  12. EasyAuth on the Function App correctly configured (issuer = CIAM v2, audience matches identifierUri) — but irrelevant since EEID never makes the HTTP call

The error progression that gives one clue: before granting MS Graph admin consent on the Claims Provider SP (item #5 above), the error was AADSTS1003021 (Custom Authentication Extension failed). After granting consent, it became AADSTS1100001. So consent moved the flow further but it now fails resolving an SP at the next stage.

Question: What identifier does AADSTS1100001 say it can't find for these correlation IDs? With no SP sign-in log entries and the Microsoft-internal STS error text not exposed to the client, I can't determine which principal the resolver is missing — every visible candidate exists and is correctly named in this tenant. Pointers to a more specific log surface, or a known scenario where this combination fails, would be hugely appreciated.

Microsoft Security | Microsoft Entra | Microsoft Entra External ID

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.