Edit

Planning for customer identity and access management

Applies to: Green circle with a white check mark symbol that indicates the following content applies to external tenants. External tenants (learn more)

Microsoft Entra External ID adds customer identity and access management (CIAM) to your app on the Microsoft Entra platform, so you get consistent app integration, tenant management, and operations across workforce and customer scenarios.

This article is a decision-making guide for the six planning steps. Each section summarizes the key choices and links to the canonical how-tos and reference docs.

Diagram showing the six setup steps as a horizontal flow: create an external tenant, choose an authentication approach, register your application, integrate a sign-in flow, secure your sign-in, and customize your sign-in.

Jump to a step for details, or go straight to the How-to guides.

Step How-to guides
Step 1: Create an external tenant Create an external tenant
Or start a free trial
Step 2: Choose an authentication approach Choose an authentication approach
Step 3: Register your application Register your application
Step 4: Integrate a sign-in flow with your app Create a user flow
Add your app to the user flow
Step 5: Secure your sign-in Add multifactor authentication (MFA)
Review security and governance
Integrate third-party bot protection (native authentication)
Integrate third-party ATO protection (native authentication)
Step 6: Customize your sign-in Customize branding (browser-delegated)
Use a custom URL domain
Add custom authentication extensions

Step 1: Create an external tenant

Diagram showing the setup flow with step 1, create an external tenant, highlighted.

Your external tenant is the resource where you register apps and manage customer identities, separate from your workforce tenant. When you create it, you choose its geographic location and domain name. If you currently use Azure AD B2C, your existing B2C tenants aren't affected; see Plan your migration from Azure AD B2C to External ID.

Important

Effective May 1, 2025, Azure Active Directory B2C (Azure AD B2C) is no longer available for new customers to purchase. To learn more, see Is Azure AD B2C still available to purchase? in our FAQ.

The directory contains both admin accounts and customer accounts. Customers usually self-register; you can also create local accounts. Customer accounts have a restricted default permission set and can't see other users, groups, or devices.

How to create an external tenant

Step 2: Choose an authentication approach

Diagram showing the setup flow with step 2, choose an authentication approach, highlighted.

Decide how to build the sign-in experience before you register your app. This choice drives the rest of your integration.

  • Browser-delegated authentication — Microsoft hosts the sign-in page; your app redirects users to it. Broad platform support, system-browser SSO, lower maintenance.
  • Native authentication — your app hosts the sign-in UI and calls MSAL or the native authentication API directly. Full UI control, more development and security responsibility.

How to choose an authentication approach

Step 3: Register your application

Diagram showing the setup flow with step 3, register your application, highlighted.

Register your app in your external tenant to establish a trust relationship with Microsoft Entra ID. The settings you configure depend on the authentication approach you chose in Step 2:

Setting Browser-delegated Native authentication
Redirect URI Required (matches your app's sign-in callback) Required only as a web fallback
Public client flows Not required Enabled
Native authentication Not required Enabled

After you register the app, update your code with the application (client) ID, tenant subdomain, and (if applicable) client secret.

How to register your application

Step 4: Integrate a sign-in flow with your app

Diagram showing the setup flow with step 4, integrate a sign-in flow with your app, highlighted.

Create a sign-up and sign-in user flow that defines the sign-in methods, attributes to collect, and identity providers for your app. You create the user flow the same way for both authentication approaches; the difference is how your app drives it at runtime:

Browser-delegated Native authentication
Runtime behavior App redirects to the Microsoft-hosted sign-in page App calls MSAL native authentication APIs from your own UI
Supported app types Web, SPA, mobile, daemon Mobile, SPA
Federated identity providers (social, external IdPs) Supported Not supported — use browser-delegated if needed
Company branding Applies to Microsoft-hosted pages Managed in your app's UI/localization
Attribute collection Configured in the user flow Configured in the user flow; submitted via the MSAL user attribute builder

Plan your user flow

  • Number of user flows. Each app uses one user flow. You can share one flow across apps or create up to 10 per tenant for differentiated experiences.
  • Attributes to collect. Decide which built-in attributes you need and whether you need custom attributes.
  • Terms and conditions consent. Use custom attributes to capture consent with links to your terms and privacy policies.
  • Token claims. Add required attributes to the token if your app depends on them.
  • Sign-in methods. Local accounts (email OTP, email + password) work with both approaches. Federated providers (Google, Facebook, Apple, another Microsoft Entra tenant, custom OIDC) require browser-delegated authentication.

How to integrate a user flow with your app

Step 5: Secure your sign-in

Diagram showing the setup flow with step 5, secure your sign-in, highlighted.

Every customer-facing app needs MFA and a baseline security review. Native authentication apps have extra work: because your app is the exposed sign-in surface, you front it with a web application firewall (WAF). Browser-delegated apps inherit Microsoft's platform-level protections on the hosted sign-in pages.

Step 6: Customize your sign-in

Diagram showing the setup flow with step 6, customize your sign-in, highlighted.

Customize the sign-in look and feel and extend it with your own business logic. With native authentication, your app owns the UI, so the Microsoft Entra company-branding feature doesn't apply — manage visuals and localization in your app code.

  • Customize branding (browser-delegated only). Apply your logo, colors, and language strings to the Microsoft-hosted sign-in pages. See Customize the sign-in look and feel.
  • Use a custom URL domain. Replace the default ciamlogin.com host with your own domain. Also a prerequisite for native authentication bot/ATO protection in Step 5. See Custom URL domain.
  • Add custom authentication extensions. Extend the flow with server-side logic. Token-issuance extensions work with both approaches; attribute-collection extensions are browser-delegated only. See Custom authentication extensions.

Next steps