Проверяет знание методов аутентификации и прав доступа.
JWT – токены с claims (например, роли).
Имперсонализация – временный вход под другим пользователем (требует прав администратора).
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options => {
options.TokenValidationParameters = new TokenValidationParameters {
ValidateIssuer = true,
ValidIssuer = "AuthService",
ValidateAudience = false
};
});Сценарий: Поддержка отлаживает проблему как пользователь.
Реализация:
[Authorize(Roles = "Admin")]
public async Task<IActionResult> Impersonate(string userId) {
var user = await userManager.FindByIdAsync(userId);
var token = GenerateJwtForUser(user); // Генерация токена с правами пользователя
return Ok(token);
}Вывод:
JWT — для основной авторизации, имперсонализация — для администрирования.