У меня есть приложение API ядра ASP Net с Identity Core для управления пользователями и заявками и Microsoft.AspNetCore.Authentication в качестве промежуточного программного обеспечения для аутентификации.Я использую промежуточное программное обеспечение JWT для выдачи токенов на предъявителя.
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(cfg =>
{
cfg.RequireHttpsMetadata = false;
cfg.SaveToken = true;
cfg.TokenValidationParameters = new TokenValidationParameters
{
ValidIssuer = Configuration["JwtIssuer"],
ValidAudience = Configuration["JwtIssuer"],
IssuerSigningKey = issuerSigningKey,
ClockSkew = TimeSpan.Zero // remove delay of token when expire
};
});
Это прекрасно работает для сценариев имени пользователя и пароля.Теперь я хочу использовать другой API (приложение логики Azure), чтобы выполнить некоторые вызовы REST для API ASP Core, который имеет защищенные конечные точки.
Я ищу руководство о том, как этого добиться.У меня есть пара идей:
- Создайте пользователя в таблице идентификаторов, который будет действовать как учетная запись службы / автоматизации , так же, как обычный пользователь.Преимущество - никаких изменений не требуется.Недостаток - звучит немного странно.
- Создайте какую-то зашифрованную строку / токен , сохраните ее в API app.settings и попросите API-интерфейсы потребителя передать ее в заголовок.Преимущество - Простота реализации, недостаток - не уверен, как это будет работать с конвейером аутентификации канала-носителя JWT.Кроме того, звучит немного статично и небезопасно.
- Реализуйте что-то вроде Идентификатор приложения и Секрет .Преимущество - похоже на хорошую практику, масштабируемо для нескольких приложений (потребителей).Недостаток - я понятия не имею, как реализовать это с помощью ASP Core Identity и это тоже вместе с конвейером JWT.
Буду очень признателен за руководство.