Проблемы с настройкой аутентификации носителя JWT в ядро ​​ASP.NET CoreC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с настройкой аутентификации носителя JWT в ядро ​​ASP.NET Core

Сообщение Anonymous »

Я создал минимальное основное приложение ASP.NET, которое предназначено для экспериментов с токенами JWT.using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
using netwebapi;
using System.Text;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();

// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi();

// Authentication
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.SaveToken = true;
options.RequireHttpsMetadata = false;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
ValidateAudience = false,
ValidAudience = builder.Configuration["JWT:ValidAudience"],
ValidIssuer = builder.Configuration["JWT:ValidIssuer"],
ClockSkew = TimeSpan.Zero,
ValidateLifetime = false,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["JWT:Secret"]))
};
});

builder.Services.AddAuthorization();
builder.Services.AddTransient();
builder.Services.AddTransient();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
}

app.UseHttpsRedirection();
app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();

app.Run();
< /code>
tokens Generation: < /p>
public class TokenService : ITokenService
{
private readonly IConfiguration _configuration;

public TokenService(IConfiguration configuration)
{
_configuration = configuration;
}

public string GenerateAccessToken(IEnumerable claims)
{
var tokenHandler = new JwtSecurityTokenHandler();

// Create a symmetric security key using the secret key from the configuration.
var authSigningKey = new SymmetricSecurityKey
(Encoding.UTF8.GetBytes(_configuration["JWT:Secret"]));

var tokenDescriptor = new SecurityTokenDescriptor
{
Issuer = _configuration["JWT:ValidIssuer"],
Audience = _configuration["JWT:ValidAudience"],
Subject = new ClaimsIdentity(claims),
Expires = DateTime.Now.AddMinutes(15),
SigningCredentials = new SigningCredentials
(authSigningKey, SecurityAlgorithms.HmacSha256)
};

var token = tokenHandler.CreateToken(tokenDescriptor);

return tokenHandler.WriteToken(token);
}
}
< /code>
Теперь, в конечной точке я могу получить действительные токены, которые я подтверждаю, используя jwt.io. У него есть действительные проблемы, аудитория, а также допустимая подпись.Authorization: Bearer ...token...

Я получаю ответ http 401 (несанкционированный).
Конечно, если я удалю аннотацию Authorize данных, все работает. Невозможно сделать уполномоченный запрос. Вот часть моих настроек: < /p>
"JWT": {
"ValidAudience": "http://localhost:5235",
"ValidIssuer": "http://localhost:5235",
"Secret": "super secret"
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... p-net-core
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблемы с настройкой аутентификации JWT носителя в ASP.NET
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Токен носителя Jwt недействителен в веб-API ASP.NET Core.
    Anonymous » » в форуме C#
    0 Ответы
    111 Просмотры
    Последнее сообщение Anonymous
  • Как динамически обновлять параметры носителя JWT в промежуточном программном обеспечении ASP.NET Core?
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • .NET8 ASP.NET Core Web API: ошибка JWT: ошибка носителя = «invalid_token»
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • .NET8 ASP.NET Core Web API: ошибка JWT: ошибка носителя = «invalid_token»
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»