Как авторизоваться с использованием токена, созданного на другом сервере отдыха в ASP.NET Core 8?

Я работаю над проектом веб-API ASP.NET Core 8.

Существует еще один существующий REST-сервер, назовите его; если вы передадите имя пользователя и пароль на его URL-адрес по адресу/api/token, он вернет токен JWT.

У него также есть еще одна конечная точка, которая будет проверять токен.

Теперь предположим, что мой API вызывается с одним из этих токенов.

Как я могу пройти аутентификацию по этому токену в методах моего контроллера? Мне интересно, смогу ли я реализовать собственный атрибут авторизации, который будет спрашиватьOldServerхорош ли токен, но не знаю, как это сделать.

Вот мой основной стартап на данный момент. Думаю, мне следует использоватьAddJwtBearer()как показано ниже, но я понятия не имею, что мне следует использовать дляAuthorityиAudience. Документация не существует.

       var builder = WebApplication.CreateBuilder(args);

 // Add services to the container.
 var configuration = builder.Configuration;

 builder.Services.AddSingleton(configuration);

 builder.Services.AddControllers();
 // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
 builder.Services.AddEndpointsApiExplorer();
 builder.Services.AddSwaggerGen();
 builder.Services.AddAuthorization();

 builder.Services.AddAuthentication() 
    .AddJwtBearer(options =>
    {
        options.Audience = "http://localhost:8080/";
        options.Authority = "http://localhost:8080/";
    });

 var section = builder.Configuration.GetSection("ServiceSettings");
 ServiceSettings? settings = section.Get < ServiceSettings?>();

 if (settings != null)
 {
     builder.Services.AddSingleton(settings);
 }

 var app = builder.Build();
 
 // Configure the HTTP request pipeline.
 if (app.Environment.IsDevelopment())
 {
     app.UseSwagger();
     app.UseSwaggerUI();
 }
 
 app.UseHttpsRedirection();

 app.UseAuthorization();

 app.MapControllers();

 app.Run();

0 ответов

Другие вопросы по тегам