Microsoft Entra External ID CIAM

Entra External Identity Patterns

Practical patterns, flows, and architectural guidance for building customer identity and access management (CIAM) solutions with Microsoft Entra External ID.

What is Entra External ID?

Microsoft Entra External ID (formerly Azure AD B2C / External Identities) is Microsoft's CIAM platform for managing external users — customers, partners, and consumers — with flexible identity flows and deep customisation.

Customer Workforce

Manage sign-up, sign-in, and profile management for external consumers with support for social, local, and federated identities.

Standards-Based

Built on OpenID Connect, OAuth 2.0, and SAML 2.0, compatible with any modern application stack.

Alternate Patterns

Alternate patterns to support flows and mechanisms not covered by built-in User Flows.

See patterns

Core Identity Patterns

Common patterns used in Entra External ID implementations

User Flows

Pre-built, configurable flows for common scenarios. Ideal for standard sign-up/sign-in requirements with minimal custom logic.

  • Sign-up and Sign-in
  • Password reset / SSPR
API Connectors

Hook into REST APIs at key points in user flows to validate data, enrich tokens, or enforce custom business logic.

  • Before creating a user
  • After federated sign-in
  • Before sending a token
  • Claims augmentation
Social & Federated IdPs

Integrate external identity providers so users can authenticate with existing accounts without creating new credentials.

  • Google, Facebook, Apple
  • Microsoft Entra ID (B2B)
  • SAML / WS-Fed enterprise IdPs
  • Custom OIDC providers
MFA & Step-up Auth

Layer additional verification factors into flows, or trigger step-up authentication at sensitive points in the user journey.

  • Email OTP / SMS OTP
  • Step-up via acr_values (via Conditional Access policies)
Token Configuration

Control what claims appear in ID tokens and access tokens, and how downstream APIs verify and consume them.

  • Custom claims mapping
  • Access token scopes & audiences
  • Token lifetime policies
  • Optional claims
Custom Auth Extensions

Use the newer Custom Authentication Extensions to inject custom claims into tokens via a REST endpoint — without IEF XML.

  • OnTokenIssuanceStart event
  • Claims augmentation API
  • Azure Function backend
  • JSON claims response
Branding & Custom UI

Replace the default Entra pages with fully branded experiences using company branding or custom HTML templates.

  • Company branding (per flow)
  • Supplimentary CSS support
B2C vs External ID

Understanding the migration path and key differences between legacy Azure AD B2C and the new Entra External ID tenant model.

  • External tenant type
  • Workforce + customer separation
  • Native OIDC authority URLs
  • Migration considerations

Standard CIAM Architecture

How the pieces fit together in a typical Entra External ID deployment

Request flow

User / Browser
Your App
SPA / Mobile / Web
Entra External ID
User Flow
API Connector /
Custom Extension
Your
API
Token
(JWT)
Entra
Token Endpoint
Flow walkthrough
1
Auth request

Your app redirects the user to the Entra External ID authorization endpoint with the relevant user flow.

2
Identity journey

The user completes the configured flow — sign-up, sign-in, MFA, social IdP federation, etc.

3
API connector / extension

Optionally, Entra calls your REST API to validate data, look up additional claims, or enforce business rules.

4
Token issued

An ID token and/or access token is returned to your app, containing the configured claims.

5
API call

Your app presents the access token to your protected API, which validates the JWT signature against Entra's JWKS endpoint.

Key Considerations

Things to keep in mind when designing Entra External ID solutions

User Flow vs Native Authentication APIs

Start with User Flows unless you need a more development focused approach. Native Authentication APIs have a steeper learning curve but provide full control.

Token Validation in APIs

Always validate the iss (issuer), aud (audience), and exp claims in JWTs. Use the JWKS endpoint from Entra's OpenID configuration document to verify signatures rather than hardcoding public keys.

B2C vs External ID Tenant Type

New projects should use the External ID tenant type (external tenant), not the legacy Azure AD B2C tenant. The External ID model is the strategic direction and aligns with the broader Entra platform — B2C tenants remain supported but won't receive new CIAM features.

API Connector Latency

API connectors and custom extensions add a synchronous call to the sign-in critical path. Keep your endpoint fast (target under 200ms) and implement retries + circuit breakers. Cold starts on Azure Functions can cause timeouts — use Premium plan or pre-warmed instances for production.

Alternate Patterns

Approaches for scenarios not covered by built-in User Flows

Custom OIDC Identity Provider - Email Address workaround

When setting up a custom OIDC Identity Provider, there currently is a requirement for the token to contain an 'Email Address'.
But some providers do not supply this, so there is a pattern available that allows customization of the token supplied to EEID.
This utilizes a Function App that acts as an intermediary IdP to pass through requests and responses to EEID.

Linking Social Accounts to Local Accounts

A common requirement is to link a social account to an existing local account, so the user can sign in with either.
This pattern uses PowerShell 7 and the Microsoft Graph API to link the identities together in Entra External ID.

Enabling Sign in with username

By default, Entra External ID requires users to sign in with an email address or a social identity. However, some applications require users to sign in with a username instead.
This pattern demonstrates how to enable sign in with username instead of email address.

Need Help with Entra External ID?

We design and implement CIAM solutions using Entra External ID and custom identity flows.

Get in Touch