Я разрабатываю приложение, которое пользователи могут аутентифицировать с помощью имени пользователя и пароля, и мы предоставляем токен JWT, который затем проверяется на сервере.
Одна вещь, которую я хотел бы добавить, - это возможность иметь специальный ключ API (guid), который пользователи могут использовать при интеграции с этим приложением вместо использования имени пользователя и пароля.
Я не уверен, как это сделать, поскольку часть проверки подлинности выглядит как черный ящик (с использованием Aspnet Identity).
Вот мой код для настройки аутентификации.
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddDbContext<OmbiContext>(options =>
        options.UseSqlite("Data Source=Ombi.db"));
    services.AddIdentity<OmbiUser, IdentityRole>()
        .AddEntityFrameworkStores<OmbiContext>()
        .AddDefaultTokenProviders();
    services.Configure<IdentityOptions>(options =>
    {
        options.Password.RequireDigit = false;
        options.Password.RequiredLength = 1;
        options.Password.RequireLowercase = false;
        options.Password.RequireNonAlphanumeric = false;
        options.Password.RequireUppercase = false;
    });
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IMemoryCache cache)
{
    var tokenOptions = (IOptions<TokenAuthentication>)app.ApplicationServices.GetService(
        typeof(IOptions<TokenAuthentication>));
    var ctx = (IOmbiContext)app.ApplicationServices.GetService(typeof(IOmbiContext));
    var tokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuerSigningKey = true,
        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(tokenOptions.Value.SecretKey)),
        RequireExpirationTime = true,
        ValidateLifetime = true,
        ValidAudience = "Ombi",
        ValidIssuer = "Ombi",
        ClockSkew = TimeSpan.Zero
    };
    app.UseJwtBearerAuthentication(new JwtBearerOptions()
    {
        Audience = "Ombi",
        AutomaticAuthenticate = true,
        TokenValidationParameters =  tokenValidationParameters,
    });
 //....
}
Приведенный выше код работает при наличии атрибутов [Authorized] на контроллерах и проверке ролей и тому подобного.
У кого-нибудь есть идеи, как передать какой-либо заголовок Api-Key на все запросы, содержащие этот специальный ключ API, чтобы он передавал атрибуты [Authorized]? (ключ хранится в БД).
Спасибо