I am using Microsoft Entra External ID (customer tenant) and I am unable to get the email claim in the ID token returned by a User Flow.
Problem
The ID token does not contain the email claim.
This happens for both:
- Local accounts (Email with password)
- Google social accounts
In both cases, the user profile clearly contains a valid email address.
App Registration Configuration
I created a new app registration with the following settings:
Authentication
- Redirect URI:
https://jwt.ms
- Enabled: ID tokens (used for implicit and hybrid flows)
Token Configuration
- Added all available optional claims for ID tokens, including
email
API Permissions
Microsoft Graph delegated permissions:
-
openid
-
profile
-
email
-
User.Read
User Flow Configuration
I created a sign-up/sign-in User Flow with these identity providers:
- Email with password
- Google
Authorization Request
I launch the User Flow with the following request:
https://<directory>.ciamlogin.com/<tenant-id>/oauth2/v2.0/authorize
?client_id=<client-id>
&nonce=<nonce>
&redirect_uri=https%3A%2F%2Fjwt.ms
&scope=openid%20profile%20email
&response_type=id_token
&prompt=login
Expected Result
The returned ID token should include:
"email": "user@example.com"
Actual Result
The ID token does not contain the email claim.
Question
What additional configuration is required to have the email claim included in the ID token returned by a User Flow in Microsoft Entra External ID?