I am following the information from this youtube video by Nick Chapsas.
I have the following set up as described:
API
builder.Services.AddAuthentication(a =>
{
a.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
a.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
a.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(b =>
{
b.TokenValidationParameters = new TokenValidationParameters
{
ValidIssuer = builder.Configuration["JwtSettings:Issuer"],
ValidAudience = builder.Configuration["JwtSettings:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(builder.Configuration["JwtSettings:Key"]!)),
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true
};
});
With appsettings.json:
"JwtSettings": {
"Issuer": "https://login.microsoftonline.com/089e76d9-be81-46e6-9249-325211a2cc67/v2.0",
"Audience": "5e7c53f0-527f-440c-8be2-34dccc1513ef",
"Key": "myRegisteredApplicationSecret"
}
Where 089e76d9-be81-46e6-9249-325211a2cc67
is the (fake) tenantid.
and 5e7c53f0-527f-440c-8be2-34dccc1513ef
is the (fake) clientid of the registered application on EntraID.
Client
For now I am using Postman to try and get authentication running. As mentioned by Nick I call my endpoint:
https://localhost:7049/WeatherForecast
And set header to:
I hid everything after ey
but it’s the full JWT token that I received from my Front End colleague.
That token was requested upon sign in against the same Issuer. It’s defined like this on the Blazor WASM app:
{
"AzureAd": {
"ClientId": "5e7c53f0-527f-440c-8be2-34dccc1513ef",
"Authority": "https://login.microsoftonline.com/089e76d9-be81-46e6-9249-325211a2cc67/v2.0",
"ValidateAuthority": true
}
}
It’s supposed to work according to my colleague, but I still get
401 Unauthorized
As the result of my Postman request.
I have tried removing those Validate* tokenValidationParameters, to see if setting it less strict works but that’s not the case.
My question
- Am I missing something?
- Is there a way to generate a token myself and see if I can get it to work with that?