- Web_App_A: обрабатывает аутентификацию
- Web_App_B : само приложение.
B получает JWT и может его прочитать, поэтому:
var UserFullName = claimsPrincipal.FindFirst("UserFullName")?.Value;
показывает правильное значение.
Проблема в том, что когда я проверяю статус аутентификации в B,
User.Identity.IsAuthenticated == false.
Оба имеют файл Program.cs, где эта часть одинакова:
// JWT Configuration
var jwtKey = builder.Configuration["Jwt:Key"]; // Read from appsettings
var jwtValidIssuer = builder.Configuration["Jwt:ValidIssuer"]; // Read from appsettings
var jwtValidAudience = builder.Configuration["Jwt:ValidAudience"]; // Read from appsettings
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = jwtValidIssuer,
ValidateAudience = true,
ValidAudience = jwtValidAudience,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtKey)),
RoleClaimType = ClaimTypes.Role // Parse roles correctly from token
};
});
Подробнее здесь: https://stackoverflow.com/questions/790 ... -succesful