Подключение схемы

Добавим пакет Microsoft.AspNetCore.OpenApi:

dotnet add Microsoft.AspNetCore.OpenApi

Выделим получение схемы в отдельный метод:

using Microsoft.OpenApi.Models;
 
public class BearerSchemeBuilder
{
	public OpenApiSecurityScheme Build() => new()
	{
		Description = "JWT Authorization header using the Bearer scheme (Example: 'Bearer 12345abcdef')",
		Name = "Authorization",
		In = ParameterLocation.Header,
		Type = SecuritySchemeType.ApiKey,
		Scheme = "bearer",
		Reference = new OpenApiReference
		{
			Type = ReferenceType.SecurityScheme,
			Id = "bearer"
		},
	};
}

Создадим Extensions для подключения Swagger. В моем случае это файл DependencyInjection/Swagger.cs в основном проекте Asp.net:

using Microsoft.OpenApi.Models;
 
public static class Swagger
{
    public static IServiceCollection ConfigureSwagger(
        this IServiceCollection services
    )
    {
        var bearerBuilder = new BearerSchemeBuilder();
 
        var bearer = bearerBuilder.Build();
 
        return services.AddSwaggerGen(c =>
        {
            c.AddSecurityDefinition("bearer", bearer);
 
            c.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    bearer,
                    new List<string> { }
                }
            });
    }
 
    public static IApplicationBuilder UseConfigureSwagger(
		this IApplicationBuilder app
	)
    {
        app.UseSwagger();
 
        app.UseSwaggerUI(s =>
        {
            s.SwaggerEndpoint("v1/swagger.json", "Api v1");
            s.EnablePersistAuthorization();
        });
 
        return app;
    }
}

Подключим в Program.cs:

var builder = WebApplication.CreateBuilder(args);
 
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
 
builder.Services.ConfigureSwagger();
 
var app = builder.Build();
 
if (app.Environment.IsDevelopment())
{
    app.UseStaticFiles();
    app.UseConfigureSwagger();
}
 
app.UseHttpsRedirection();
app.MapControllers();
 
app.Run();

Предполагается, что вы также предварительно настроили соответствующую аутентификацию.

Свзанные материалы

Как настроить ротацию в Keycloak

Как настроить автоматическое обновление токена доступа

Полезные ссылки

В этом примере кажется есть возможность сделать выбор из юзеров: c# - good practice for adding auth in asp.net (swagger/open api) - Stack Overflow