/// <summary> /// Creates an instance of type <see cref="SigningCredentials"/> based on the specified parameters. /// </summary> private SigningCredentials CreateSigningCredentials(string issuerSigningKey, string encryptionAlgorithm) { SymmetricSecurityKey symmetricSecurityKey = SymmetricSecurityKeyHelper.CreateFromString(issuerSigningKey); return(new SigningCredentials(symmetricSecurityKey, encryptionAlgorithm)); }
/// <summary> /// Enables the JWT bearer authentication by registering it in the specified <see cref="serviceCollection"/>. /// </summary> private static void AddJwtBearerAuthentication(IServiceCollection serviceCollection) { using ServiceProvider provider = serviceCollection.BuildServiceProvider(); JwtAccessTokenConfig tokenConfig = provider .GetRequiredService <IOptions <JwtAccessTokenConfig> >() .Value; serviceCollection .AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(o => { o.TokenValidationParameters = new TokenValidationParameters { ValidateLifetime = true, ValidateIssuer = true, ValidateAudience = true, ValidateIssuerSigningKey = true, ClockSkew = tokenConfig.ClockSkew, ValidIssuer = tokenConfig.ValidIssuer, ValidAudience = tokenConfig.ValidAudience, IssuerSigningKey = SymmetricSecurityKeyHelper.CreateFromString(tokenConfig.IssuerSigningKey) }; }); }