To setup B2C authentication on my application, I have performed the required steps i.e. B2c tenant creations and app registration. But getting:
enter image description here
I read through bunch of articles on Microsoft learn and followed their and other tutorials as well. It seems that the same method and configuration seems to work for them. Please look through the appproach and try to provide your knowledge on any fails causing this.
I have tried this configuration in Program.cs:
<code>//The commented codes are the tried configuration.
var builder = WebApplication.CreateBuilder(args);
// builder.Services.AddDistributedMemoryCache();
// Add services to the container.
builder.Services.AddControllersWithViews();
// builder.Services.Configure<CookiePolicyOptions>(options =>
// // This lambda determines whether user consent for non-essential cookies is needed for a given request.
// options.CheckConsentNeeded = context => true;
// options.MinimumSameSitePolicy = SameSiteMode.Unspecified;
// // Handling SameSite cookie according to https://docs.microsoft.com/en-us/aspnet/core/security/samesite?view=aspnetcore-3.1
// options.HandleSameSiteCookieCompatibility();
builder.Services.AddMicrosoftIdentityWebAppAuthentication(builder.Configuration, Constants.AzureAdB2C);
// .EnableTokenAcquisitionToCallDownstreamApi()
// .AddInMemoryTokenCaches();
// builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
// .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAdB2C"));
// Add the authorization policies
builder.Services.AddAuthorization(options =>
options.FallbackPolicy = options.DefaultPolicy;
builder.Services.AddControllersWithViews(options =>
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
options.Filters.Add(new AuthorizeFilter(policy));
builder.Services.AddRazorPages()
.AddMicrosoftIdentityUI();
//Configuring appsettings section AzureAdB2C, into IOptions
// builder.Services.AddOptions();
// builder.Services.Configure<OpenIdConnectOptions>(builder.Configuration.GetSection("AzureAdB2C"));
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHttpsRedirection();
pattern: "{controller=Home}/{action=Index}/{id?}");
<code>//The commented codes are the tried configuration.
var builder = WebApplication.CreateBuilder(args);
// builder.Services.AddDistributedMemoryCache();
// Add services to the container.
builder.Services.AddControllersWithViews();
// builder.Services.Configure<CookiePolicyOptions>(options =>
// {
// // This lambda determines whether user consent for non-essential cookies is needed for a given request.
// options.CheckConsentNeeded = context => true;
// options.MinimumSameSitePolicy = SameSiteMode.Unspecified;
// // Handling SameSite cookie according to https://docs.microsoft.com/en-us/aspnet/core/security/samesite?view=aspnetcore-3.1
// options.HandleSameSiteCookieCompatibility();
// });
builder.Services.AddMicrosoftIdentityWebAppAuthentication(builder.Configuration, Constants.AzureAdB2C);
// .EnableTokenAcquisitionToCallDownstreamApi()
// .AddInMemoryTokenCaches();
// builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
// .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAdB2C"));
// Add the authorization policies
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = options.DefaultPolicy;
});
builder.Services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
builder.Services.AddRazorPages()
.AddMicrosoftIdentityUI();
//Configuring appsettings section AzureAdB2C, into IOptions
// builder.Services.AddOptions();
// builder.Services.Configure<OpenIdConnectOptions>(builder.Configuration.GetSection("AzureAdB2C"));
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
</code>
//The commented codes are the tried configuration.
var builder = WebApplication.CreateBuilder(args);
// builder.Services.AddDistributedMemoryCache();
// Add services to the container.
builder.Services.AddControllersWithViews();
// builder.Services.Configure<CookiePolicyOptions>(options =>
// {
// // This lambda determines whether user consent for non-essential cookies is needed for a given request.
// options.CheckConsentNeeded = context => true;
// options.MinimumSameSitePolicy = SameSiteMode.Unspecified;
// // Handling SameSite cookie according to https://docs.microsoft.com/en-us/aspnet/core/security/samesite?view=aspnetcore-3.1
// options.HandleSameSiteCookieCompatibility();
// });
builder.Services.AddMicrosoftIdentityWebAppAuthentication(builder.Configuration, Constants.AzureAdB2C);
// .EnableTokenAcquisitionToCallDownstreamApi()
// .AddInMemoryTokenCaches();
// builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
// .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAdB2C"));
// Add the authorization policies
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = options.DefaultPolicy;
});
builder.Services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
builder.Services.AddRazorPages()
.AddMicrosoftIdentityUI();
//Configuring appsettings section AzureAdB2C, into IOptions
// builder.Services.AddOptions();
// builder.Services.Configure<OpenIdConnectOptions>(builder.Configuration.GetSection("AzureAdB2C"));
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
and in appsettings.json:
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
"Instance": "https://partnerportal.b2clogin.com",
"ClientId": "d5f02334-abcd-4414-b34c-460f6e4b5e19",
"Domain": "partnerportal.onmicrosoft.com",
"SignInPolicyId": "B2C_1_ppp_signin_demo",
"CallbackPath":"/sigin-oidc"
<code>{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"AzureAdB2C": {
"Instance": "https://partnerportal.b2clogin.com",
"ClientId": "d5f02334-abcd-4414-b34c-460f6e4b5e19",
"Domain": "partnerportal.onmicrosoft.com",
"SignInPolicyId": "B2C_1_ppp_signin_demo",
"CallbackPath":"/sigin-oidc"
}
}
</code>
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"AzureAdB2C": {
"Instance": "https://partnerportal.b2clogin.com",
"ClientId": "d5f02334-abcd-4414-b34c-460f6e4b5e19",
"Domain": "partnerportal.onmicrosoft.com",
"SignInPolicyId": "B2C_1_ppp_signin_demo",
"CallbackPath":"/sigin-oidc"
}
}