Require oidc metadata url instead of individual values

This commit is contained in:
2024-08-17 16:38:40 +02:00
parent 4be9fd2043
commit 1d6ecfee6e
3 changed files with 8 additions and 17 deletions

View File

@@ -6,11 +6,9 @@ public class JwtOptions
{
public const string SectionName = "JWT";
public string Audience { get; set; } = "";
public string ValidAudience { get; set; } = "";
public string Authority { get; set; } = "";
public string Issuer { get; set; } = "";
public string MetadataUrl { get; set; } = "";
public string? NameClaimType { get; set; }
}
@@ -19,13 +17,10 @@ public class JwtOptionsValidator : AbstractValidator<JwtOptions>
{
public JwtOptionsValidator()
{
RuleFor(x => x.Audience)
RuleFor(x => x.ValidAudience)
.NotEmpty();
RuleFor(x => x.Authority)
.NotEmpty();
RuleFor(x => x.Issuer)
RuleFor(x => x.MetadataUrl)
.NotEmpty();
}
}

View File

@@ -125,14 +125,11 @@ public static class DependencyInjectionExtensions
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, o =>
{
o.Authority = jwtOptions.Value.Authority;
o.MetadataAddress = jwtOptions.Value.MetadataUrl;
o.TokenValidationParameters.ValidAudience = jwtOptions.Value.Audience;
o.TokenValidationParameters.ValidAudience = jwtOptions.Value.ValidAudience;
o.TokenValidationParameters.ValidateAudience = true;
o.TokenValidationParameters.ValidIssuer = jwtOptions.Value.Issuer;
o.TokenValidationParameters.ValidateIssuer = true;
if (!string.IsNullOrWhiteSpace(jwtOptions.Value.NameClaimType))
{
o.TokenValidationParameters.NameClaimType = jwtOptions.Value.NameClaimType;