Authentication چیست؟
فرآیند تأیید هویت کاربر — اثبات اینکه کاربر واقعاً همان کسی است که ادعا میکند، معمولاً با رمز عبور، توکن یا بیومتریک.
چرا مهم است؟
Authentication پایه هر سیستم چندکاربره است؛ بدون آن هیچ تصمیم دیگری (چه کسی چه دسترسیای دارد) قابل اعتماد نیست.
تعریف
Authentication یعنی «شما کی هستید؟» — فرآیندی که هویت کاربر را از طریق یک یا چند عامل (Factor) تأیید میکند.
عوامل احراز هویت (Factors)
- چیزی که میدانید: رمز عبور، PIN.
- چیزی که دارید: موبایل برای دریافت کد OTP، Authenticator App.
- چیزی که هستید: اثر انگشت، تشخیص چهره.
- MFA (Multi-Factor Authentication): ترکیب حداقل دو عامل، امنیت را بهشدت بالا میبرد.
مثال (داتنت — ورود ساده)
var user = await _userManager.FindByEmailAsync(request.Email);
if (user is null || !await _userManager.CheckPasswordAsync(user, request.Password))
return Results.Unauthorized();
var token = _tokenService.GenerateJwt(user);
return Results.Ok(new { token });
اشتباه رایج
❌ برگرداندن پیام متفاوت برای «کاربر وجود ندارد» در برابر «رمز اشتباه است» — این تفاوت به مهاجم اجازه میدهد ایمیلهای معتبر را حدس بزند (User Enumeration)؛ همیشه پیام خطای یکسان («ایمیل یا رمز عبور نادرست است») برگردانید.
منبع و مطالعه بیشتر
خلاصه
Authentication یعنی تأیید هویت کاربر، معمولاً با رمز عبور و در حالت امنتر با MFA. همیشه برای «کاربر وجود ندارد» و «رمز اشتباه» پیام خطای یکسان برگردانید تا از User Enumeration جلوگیری شود. مرجع کامل: OWASP Authentication Cheat Sheet.
