Quick summary (what you’ll learn)
This long-form guide explains what App Registrations and Enterprise Applications are, how they relate to each other (app object vs service principal), how authentication and consent flows work, the practical differences admins and developers need to know, step-by-step creation examples, security best practices, troubleshooting tips,
Table of contents
- What is an App Registration?
- What is an Enterprise Application (service principal)?
- App object vs Service principal — the core relationship
- How they work — 3 real-world sign-in / auth flows
- Major differences (side-by-side)
- How to create each (Azure portal + commands)
- Permissions, consent, and assignment differences
- Security & operational best practices
- Troubleshooting common issues
- SEO assets: keywords, meta, schema, CTAs
- Further reading & references

1) What is an App Registration?
An App Registration in Microsoft Entra ID (formerly Azure AD) is how you register an application with the Microsoft identity platform so it can use OAuth2 / OpenID Connect (or other identity flows). The app registration defines the application object (the blueprint): client (application) ID, redirect URIs, supported account types, API permissions you want to request, and the manifest/exposed API definitions. This is the place developers configure how their app integrates with Microsoft identity services. Microsoft Learn
Key App Registration components
-
Application (client) ID — unique identifier for the app object.
-
Redirect URIs / reply URLs — where tokens are returned.
-
Certificates & client secrets — credentials for confidential clients.
-
API permissions & exposed scopes/roles — what the app requests / exposes.
-
Supported account types — single-tenant, multi-tenant, personal Microsoft accounts, etc.
-
Application manifest — JSON that holds advanced settings (app roles, oauth2AllowImplicitFlow, etc.). Microsoft Learn

2) What is an Enterprise Application?
An Enterprise Application is the tenant-specific, runtime representation — the service principal — of an application in a particular Microsoft Entra tenant. When you add an app to a tenant (either by registering it there or when a multi-tenant app is consented/installed), a service principal (enterprise application) is created in that tenant. This object controls how the app behaves inside the tenant: assignments, single-sign-on settings, provisioning, user/group access, conditional access, and local configuration. Microsoft Learn
What admins manage in Enterprise Applications
-
Single Sign-On mode (SAML, OIDC, password-based SSO, etc.)
-
User and group assignments (who can sign in)
-
Provisioning (SCIM) configuration
-
Conditional Access policies and Sign-in logs
-
Application-specific settings like user attributes or app roles
3) App object (App Registration) vs Service principal (Enterprise Application) — the core relationship.
Lorem ipsum dolor sit amet, The clean way to think about it:
-
Application object (App Registration) = the global blueprint (definition stored in the home tenant where the app was registered).
-
Service principal (Enterprise Application) = the local instance used to actually authorize and authenticate in a tenant.
If you register an app in your own tenant, Azure automatically creates an application object and a corresponding service principal in the same (home) tenant. If another tenant consents to your multi-tenant app, that tenant will get its own service principal (Enterprise Application) representing your app there. In short: enterprise application = friendly UI name for the service principal, and app registration = friendly name for the application object. Microsoft Learn
4) How they work — 3 real-world flows
A. Single-tenant web app (developer-owned tenant)
-
Dev registers the app in App Registrations (gets client ID / secret). Microsoft Learn
-
Azure creates an application object and a service principal in the same tenant. Microsoft Learn
-
User signs in -> Azure authenticates -> issues ID token to the app according to the configured redirect URI.
B. Multi-tenant SaaS app (ISV scenario)
-
ISV registers app as multi-tenant. The app object lives in ISV’s tenant. Microsoft Learn
-
A customer tenant consents to the app — Azure creates a service principal (Enterprise Application) in the customer tenant that maps to the ISV app object. Microsoft Learn
-
The customer controls access locally (assign users/groups, apply Conditional Access), while the app definition remains with the ISV.
C. Daemon / service-to-service app (client_credentials)
-
App registration contains application permissions and client credentials (cert or secret). Microsoft Learn
-
The app requests tokens using client_credentials; the service principal is used to grant/record consent in the tenant where the app runs.
5) Major differences (side-by-side)
6) How to create each — quick start
Register an app (portal)
-
Azure portal → Microsoft Entra → App registrations → New registration.
-
Fill name, supported account types, redirect URI, click Register. Microsoft Learn
Add an enterprise app (from gallery)
-
Azure portal → Microsoft Entra → Enterprise applications → + New application → choose app from gallery or Create your own application.
-
Configure SSO, provisioning, user assignment as needed. Microsoft Learn
CLI / PowerShell examples
-
Create app registration (Microsoft Graph / az cli):
az ad app create --display-name "MyApp" --identifier-uris "api://myapp" --reply-urls "https://myapp/signin"
-
Create service principal (to create Enterprise App entry):
az ad sp create --id <appId>
(Use Microsoft Graph equivalents for newer API parity; portals/CLI create both objects for the home tenant automatically.) Microsoft Learn
7) Permissions, consent, and assignment: what’s different
Permissions (in App Registration): You declare what APIs the app requests (delegated) or what application-level access it needs (app permissions). Admin consent is granted (often at tenant level) and recorded on the service principal. Microsoft Learn
Enterprise Application & consent: The service principal shows the effective permissions and any granted consents for that tenant. Admins can revoke consent or reconfigure user assignment and SSO. Microsoft Learn
User assignment vs Admin consent: Some gallery apps require explicit user/group assignment (Enterprise app setting) — meaning users must be assigned before signing in. App Registrations are about how the app authenticates; Enterprise Apps govern who can actually use it in a tenant.
8) Security & operational best practices (must-follow)
These are practical recommendations derived from Microsoft guidance and Zero Trust principles:
Prefer certificates (client assertion) over client secrets for confidential clients — secrets leak and expire; certs are safer. Microsoft Learn
-
Least privilege: request only the permissions your app needs; prefer delegated permissions where possible. Microsoft Learn
-
Rotate credentials & store in Key Vault — automate rotation and avoid hard-coded secrets. Microsoft Learn
-
Use Conditional Access for Enterprise Applications to enforce MFA, location/device checks on the service principal. Microsoft Learn
-
Monitor sign-in and consent logs for suspicious activity; set alerts for risky sign-ins. Microsoft Learn
-
Restrict who can register apps (tenant setting) to prevent shadow IT; manage admin consent workflow for high-risk permissions. Microsoft Learn
9) Troubleshooting — common admin questions & fixes
Q: “I registered an app but can’t find it in Enterprise Applications.”
A: That’s expected for the home tenant: the service principal (Enterprise App) is usually created automatically — check the same tenant’s Enterprise Applications list and search by application (app) ID or display name. For multi-tenant apps, a service principal appears only in a tenant after consent/install. Microsoft Learn
Q: “Why does the app show different permissions in App Registrations vs Enterprise Applications?”
A: App Registrations shows requested permissions; Enterprise Applications shows what’s been consented/granted in THIS tenant (local effect). Admins can revoke/grant consent on the Enterprise Application. Microsoft Learn
Q: “How do I remove an app fully?”
A: Remove the service principal(s) from all tenants where it exists (Enterprise Applications) and then delete the application object (App Registration) in the home tenant. For multi-tenant apps, remove consent in each tenant first.
Leave a Reply