Использование ASP NET Core Identity для аутентификации учетных записей автоматизации / служб - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть приложение 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, который имеет защищенные конечные точки.

Я ищу руководство о том, как этого добиться.У меня есть пара идей:

  1. Создайте пользователя в таблице идентификаторов, который будет действовать как учетная запись службы / автоматизации , так же, как обычный пользователь.Преимущество - никаких изменений не требуется.Недостаток - звучит немного странно.
  2. Создайте какую-то зашифрованную строку / токен , сохраните ее в API app.settings и попросите API-интерфейсы потребителя передать ее в заголовок.Преимущество - Простота реализации, недостаток - не уверен, как это будет работать с конвейером аутентификации канала-носителя JWT.Кроме того, звучит немного статично и небезопасно.
  3. Реализуйте что-то вроде Идентификатор приложения и Секрет .Преимущество - похоже на хорошую практику, масштабируемо для нескольких приложений (потребителей).Недостаток - я понятия не имею, как реализовать это с помощью ASP Core Identity и это тоже вместе с конвейером JWT.

Буду очень признателен за руководство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...