Add Microsoft Entra ID Authentication (Members)
Learn how to use Microsoft Entra ID (Azure Active Directory) credentials to login to Umbraco as a member.
This tutorial takes you through configuring Microsoft Entra ID (Azure Active Directory/Azure AD) for the member login on your Umbraco CMS website.
Prerequisites
A project with a setup for Members.
Visual Studio, or another Integrated Development Environment (IDE).
Step 1: Configure Entra ID
Before your applications can interact with Entra ID, they must be registered with a tenant that you manage. This can be either an Entra ID (Azure AD) tenant, or an Entra ID B2C (Azure AD B2C) tenant. For more information on creating an Azure AD B2C tenant, see Microsoft's Tutorial: Create an Azure Active Directory B2C tenant.
Step 2: Install the NuGet package
You need to install the Microsoft.AspNetCore.Authentication.MicrosoftAccount NuGet package. There are two approaches to installing the packages:
Use your favorite Integrated Development Environment (IDE) and open up the NuGet Package Manager to search and install the packages.
Use the command line to install the package.
Step 3: Implement the Entra ID Authentication
Create a new class for custom configuration options:
EntraIDB2CMembersExternalLoginProviderOptions.cs.
using Microsoft.Extensions.Options;
using Umbraco.Cms.Core;
using Umbraco.Cms.Web.Common.Security;
namespace MyApp;
public class EntraIDB2CMembersExternalLoginProviderOptions : IConfigureNamedOptions<MemberExternalLoginProviderOptions>
{
public const string SchemeName = "ActiveDirectoryB2C";
public void Configure(string? name, MemberExternalLoginProviderOptions options)
{
if (name != Constants.Security.MemberExternalAuthenticationTypePrefix + SchemeName)
{
return;
}
Configure(options);
}
public void Configure(MemberExternalLoginProviderOptions options)
{
// The following options are relevant if you
// want to configure auto-linking on the authentication.
options.AutoLinkOptions = new MemberExternalSignInAutoLinkOptions(
// Set to true to enable auto-linking
autoLinkExternalAccount: true,
// [OPTIONAL]
// Default: The culture specified in appsettings.json.
// Specify the default culture to create the Member as.
// It can be dynamically assigned in the OnAutoLinking callback.
defaultCulture: null,
// [OPTIONAL]
// Specify the default "IsApproved" status.
// Must be true for auto-linking.
defaultIsApproved: true,
// [OPTIONAL]
// Default: "Member"
// Specify the Member Type alias.
defaultMemberTypeAlias: Constants.Security.DefaultMemberTypeAlias
)
{
// [OPTIONAL] Callbacks
OnAutoLinking = (autoLinkUser, loginInfo) =>
{
// Customize the Member before it's linked.
// Modify the Members groups based on the Claims returned
// in the external login info.
},
OnExternalLogin = (user, loginInfo) =>
{
// Customize the Member before it is saved whenever they have
// logged in with the external provider.
// Sync the Members name based on the Claims returned
// in the external login info
// Returns a boolean indicating if sign-in should continue or not.
return true;
}
};
}
}Create a new static extension class called
MemberAuthenticationExtensions.cs.
Add the Members authentication configuration in the
Program.csfile:
Build the project.
Run the website.

Last updated
Was this helpful?