public static IServiceCollection AddAuth(this IServiceCollection services, IConfiguration configuration) { JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, config => { var jwtConfig = configuration.GetSection("JWT").Get <JWTConfigReader>(); var signInKey = JWTHelper.CreateTokenSignInKey(jwtConfig.TokenSecurityKey); config.TokenValidationParameters = new TokenValidationParameters { ValidAudience = jwtConfig.Audience, ValidIssuer = jwtConfig.Issuer, ValidateAudience = true, ValidateIssuer = true, IssuerSigningKey = signInKey }; }); // Register policies and handlers services.AddScoped <IAuthorizationHandler, FilesOperationsAuthorizationHandler>(); services.AddScoped <IAuthorizationHandler, UsersOperationsAuthorizationHandler>(); services.AddAuthorization(); return(services); }