title | titleSuffix | description | author | manager | ms.service | ms.topic | ms.date | ms.author | ms.subservice | ms.custom | zone_pivot_groups |
---|---|---|---|---|---|---|---|---|---|---|---|
Set up sign-in for a Microsoft Entra organization |
Azure AD B2C |
Set up sign-in for a specific Microsoft Entra organization in Azure Active Directory B2C. |
garrodonnell |
CelesteDG |
azure-active-directory |
how-to |
01/27/2025 |
godonnell |
b2c |
fasttrack-edit, |
b2c-policy-type |
This article shows you how to enable sign-in for users from a specific Microsoft Entra organization using a user flow in Azure AD B2C.
[!INCLUDE active-directory-b2c-choose-user-flow-or-custom-policy]
::: zone pivot="b2c-custom-policy"
[!INCLUDE active-directory-b2c-advanced-audience-warning]
::: zone-end
[!INCLUDE active-directory-b2c-customization-prerequisites]
As of November 2020, new application registrations show up as unverified in the user consent prompt unless the application's publisher domain is verified and the company’s identity has been verified with the Microsoft Partner Network and associated with the application. (Learn more about this change.) Note that for Azure AD B2C user flows, the publisher’s domain appears only when using a Microsoft account or other Microsoft Entra tenant as the identity provider. To meet these new requirements, do the following:
- Verify your company identity using your Microsoft Partner Network (MPN) account. This process verifies information about your company and your company’s primary contact.
- Complete the publisher verification process to associate your MPN account with your app registration using one of the following options:
- If the app registration for the Microsoft account identity provider is in a Microsoft Entra tenant, verify your app in the App Registration portal.
- If your app registration for the Microsoft account identity provider is in an Azure AD B2C tenant, mark your app as publisher verified using Microsoft Graph APIs (for example, using Graph Explorer). The UI for setting an app’s verified publisher is currently disabled for Azure AD B2C tenants.
To enable sign-in for users with a Microsoft Entra account from a specific Microsoft Entra organization, in Azure Active Directory B2C (Azure AD B2C), you need to create an application in the Azure portal. For more information, see Register an application with the Microsoft identity platform.
-
Sign in to the Azure portal.
-
If you have access to multiple tenants, select the Settings icon in the top menu to switch to your Microsoft Entra ID tenant from the Directories + subscriptions menu.
-
In the Azure portal, search for and select Microsoft Entra ID.
-
In the left menu, under Manage, select App registrations.
-
Select + New registration.
-
Enter a Name for your application. For example,
Azure AD B2C App
. -
Accept the default selection of Accounts in this organizational directory only (Default Directory only - Single tenant) for this application.
-
For the Redirect URI, accept the value of Web, and enter the following URL in all lowercase letters, where
your-B2C-tenant-name
is replaced with the name of your Azure AD B2C tenant.https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
For example,
https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp
.If you use a custom domain, enter
https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Replaceyour-domain-name
with your custom domain, andyour-tenant-name
with the name of your tenant. -
Select Register. Record the Application (client) ID for use in a later step.
-
Select Certificates & secrets, and then select New client secret.
-
Enter a Description for the secret, select an expiration, and then select Add. Record the Value of the secret for use in a later step.
::: zone pivot="b2c-user-flow"
-
If you have access to multiple tenants, select the Settings icon in the top menu to switch to your Azure AD B2C tenant from the Directories + subscriptions menu.
-
Choose All services in the top-left corner of the Azure portal, and then search for and select Azure AD B2C.
-
Select Identity providers, and then select New OpenID Connect provider.
-
Enter a Name. For example, enter Contoso Microsoft Entra ID.
-
For Metadata url, enter the following URL replacing
{tenant}
with the domain name of your Microsoft Entra tenant:https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration
For example, https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration
. If you use a custom domain, replace contoso.com
with your custom domain in https://login.microsoftonline.com/contoso.com/v2.0/.well-known/openid-configuration
.
-
For Client ID, enter the application ID that you previously recorded.
-
For Client secret, enter the client secret value that you previously recorded.
-
For Scope, enter
openid profile
. -
Leave the default values for Response type, and Response mode.
-
(Optional) For the Domain hint, enter
contoso.com
. For more information, see Set up direct sign-in using Azure Active Directory B2C. -
Under Identity provider claims mapping, select the following claims:
- User ID: oid
- Display name: name
- Given name: given_name
- Surname: family_name
- Email: email
-
Select Save.
At this point, the Microsoft Entra identity provider has been set up, but it's not yet available in any of the sign-in pages. To add the Microsoft Entra identity provider to a user flow:
- In your Azure AD B2C tenant, select User flows.
- Click the user flow that you want to add the Microsoft Entra identity provider.
- Under Settings, select Identity providers
- Under Custom identity providers, select Contoso Microsoft Entra ID.
- Select Save.
- To test your policy, select Run user flow.
- For Application, select a web application that you previously registered. The Reply URL should show
https://jwt.ms
. - Select the Run user flow button.
- From the sign-up or sign-in page, select Contoso Microsoft Entra ID to sign in with Microsoft Entra Contoso account.
If the sign-in process is successful, your browser is redirected to https://jwt.ms
, which displays the contents of the token returned by Azure AD B2C.
::: zone-end
::: zone pivot="b2c-custom-policy"
You need to store the application key that you created in your Azure AD B2C tenant.
- If you have access to multiple tenants, select the Settings icon in the top menu to switch to your Azure AD B2C tenant from the Directories + subscriptions menu.
- Choose All services in the top-left corner of the Azure portal, and then search for and select Azure AD B2C.
- Under Policies, select Identity Experience Framework.
- Select Policy keys and then select Add.
- For Options, choose
Manual
. - Enter a Name for the policy key. For example,
ContosoAppSecret
. The prefixB2C_1A_
is added automatically to the name of your key when it's created, so its reference in the XML in following section is to B2C_1A_ContosoAppSecret. - In Secret, enter your client secret value that you recorded earlier.
- For Key usage, select
Signature
. - Select Create.
To enable users to sign in using a Microsoft Entra account, you need to define Microsoft Entra ID as a claims provider that Azure AD B2C can communicate with through an endpoint. The endpoint provides a set of claims that are used by Azure AD B2C to verify that a specific user has authenticated.
You can define Microsoft Entra ID as a claims provider by adding Microsoft Entra ID to the ClaimsProvider element in the extension file of your policy.
-
Open the TrustFrameworkExtensions.xml file.
-
Find the ClaimsProviders element. If it does not exist, add it under the root element.
-
Add a new ClaimsProvider as follows:
<ClaimsProvider> <Domain>Contoso</Domain> <DisplayName>Login using Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="AADContoso-OpenIdConnect"> <DisplayName>Contoso Employee</DisplayName> <Description>Login with your Contoso account</Description> <Protocol Name="OpenIdConnect"/> <Metadata> <Item Key="METADATA">https://login.microsoftonline.com/tenant-name.onmicrosoft.com/v2.0/.well-known/openid-configuration</Item> <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid profile</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoAppSecret"/> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/> <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
-
Under the ClaimsProvider element, update the value for Domain to a unique value that can be used to distinguish it from other identity providers. For example
Contoso
. You don't put a.com
at the end of this domain setting. -
Under the ClaimsProvider element, update the value for DisplayName to a friendly name for the claims provider. This value is not currently used.
To get a token from the Microsoft Entra endpoint, you need to define the protocols that Azure AD B2C should use to communicate with Microsoft Entra ID. This is done inside the TechnicalProfile element of ClaimsProvider.
- Update the ID of the TechnicalProfile element. This ID is used to refer to this technical profile from other parts of the policy, for example
AADContoso-OpenIdConnect
. - Update the value for DisplayName. This value will be displayed on the sign-in button on your sign-in screen.
- Update the value for Description.
- Microsoft Entra ID uses the OpenID Connect protocol, so make sure that the value for Protocol is
OpenIdConnect
. - Set value of the METADATA to
https://login.microsoftonline.com/tenant-name.onmicrosoft.com/v2.0/.well-known/openid-configuration
, wheretenant-name
is your Microsoft Entra tenant name. For example,https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration
- Set client_id to the application ID from the application registration.
- Under CryptographicKeys, update the value of StorageReferenceId to the name of the policy key that you created earlier. For example,
B2C_1A_ContosoAppSecret
.
[!INCLUDE active-directory-b2c-add-identity-provider-to-user-journey]
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="AzureADContosoExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="AzureADContosoExchange" TechnicalProfileReferenceId="AADContoso-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
[!INCLUDE active-directory-b2c-configure-relying-party-policy]
- Select your relying party policy, for example
B2C_1A_signup_signin
. - For Application, select a web application that you previously registered. The Reply URL should show
https://jwt.ms
. - Select the Run now button.
- From the sign-up or sign-in page, select Contoso Employee to sign in with Microsoft Entra Contoso account.
If the sign-in process is successful, your browser is redirected to https://jwt.ms
, which displays the contents of the token returned by Azure AD B2C.
::: zone-end
If you want to get the family_name
and given_name
claims from Microsoft Entra ID, you can configure optional claims for your application in the Azure portal UI or application manifest. For more information, see How to provide optional claims to your Microsoft Entra app.
- Sign in to the Azure portal using your organizational Microsoft Entra tenant. Or if you're already signed in, make sure you're using the directory that contains your organizational Microsoft Entra tenant (for example, Contoso):
- Select the Directories + subscriptions icon in the portal toolbar.
- On the Portal settings | Directories + subscriptions page, find your Microsoft Entra directory in the Directory name list, and then select Switch.
- In the Azure portal, search for and select Microsoft Entra ID.
- In the left menu, under Manage, select App registrations.
- Select the application you want to configure optional claims for in the list, such as
Azure AD B2C App
. - From the Manage section, select Token configuration.
- Select Add optional claim.
- For the Token type, select ID.
- Select the optional claims to add,
family_name
andgiven_name
. - Select Add. If Turn on the Microsoft Graph profile permission (required for claims to appear in token) appears, enable it, and then select Add again.
Publisher verification helps your users understand the authenticity of the app you registered. A verified app means that the publisher of the app has verified their identity using their Microsoft Partner Network (MPN). Learn how to mark your app as publisher verified.
Learn how to pass the Microsoft Entra token to your application.