Additional Microsoft Entra services and features related to identity, access, and network security
The behavior is explained by how Microsoft Entra application objects and service principals work, and by what happens when a tenant doesn’t yet “know” about a multitenant app.
- Why service principals are missing in customer tenants
- An app registration creates:
- One application object (global definition) in the home tenant.
- One service principal in the home tenant only.
- For a multitenant app, a separate service principal must be created in each customer tenant where the app is used. This happens when a user or admin in that tenant consents to the app.
- If the service principal doesn’t exist yet in a tenant, Microsoft Entra can’t fully establish the app’s identity there. This is the same root cause described for the error “The identity of the calling application could not be established”: the service principal doesn’t exist in the tenant or the tenant isn’t aware of the application.
- The Intune SDK change that requires explicit
ADALClientIdand redirect URI means the app is now consistently using a specific Entra app registration. If some tenants never completed consent for that app (or previously used a different app ID/authority), they will now hit the missing–service-principal condition. - When a tenant-wide admin consent URL is used but the tenant has no service principal and something in the flow fails (for example, consent UX or configuration), the result can be a blank screen and no service principal is created. The underlying issue is still that the tenant has no local service principal for the app.
- Why manual creation of the service principal fixes it
- A service principal is the local representation of the app in that tenant. Once it exists, Entra can issue tokens with the correct
oid/subclaims and the app’s identity can be established. - Creating the service principal via Microsoft Graph PowerShell or Azure CLI is equivalent to what would happen automatically when consent succeeds. That’s why this workaround resolves the login failures.
- What to check in the app registration
From the Entra perspective, the key requirements are:
- The app must be configured as multitenant if it is intended for multiple customer tenants.
- The app must have a valid redirect URI that matches what the Intune SDK/MSAL is using (
ADALRedirectUriorADALRedirectSchemeinIntuneMAMSettings). - The client ID used by the Intune SDK (
ADALClientId) must be the same as the Entra app registration’sappId.
Within the constraints of the provided context, there is no additional app-registration flag that “forces” service principal creation in other tenants. The service principal is created when the tenant successfully consents to the app. If consent fails or is never completed, the service principal remains missing.
- Recommended pattern instead of manual SP creation
- The supported pattern is to:
- Ensure the app is correctly configured as multitenant with correct redirect URIs.
- Use an admin consent URL constructed as documented to add the enterprise application and grant permissions in each customer tenant.
- This is the same mechanism described for fixing cases where the service principal is missing and Entra returns errors like:
- “The client application {appId} is missing a service principal in the tenant {tenantId}.”
- “The identity of the calling application could not be established.”
If customers are seeing a blank screen on the admin consent URL, the next step is to validate that the URL is constructed exactly as documented (correct {organization} and {client-id}) and that the admin is signing in with an account from the target tenant. Once consent completes successfully, the service principal will be created automatically and manual creation will no longer be necessary.
References: