← Назад к вопросам
В чем разница между аутентификацией и авторизацией?
1.0 Junior🔥 241 комментариев
#Безопасность
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Аутентификация vs Авторизация
Аутентификация — это проверка, кто ты (identity). Авторизация — это проверка, что ты можешь делать (permissions).
Простое объяснение
Аутентификация: "Докажи, что ты — John Smith"
↓
Ты вводишь username и пароль
↓
Система проверяет в БД и говорит: "OK, ты действительно John"
Авторизация: "Теперь, что John может делать?"
↓
Система смотрит роли/permissions: admin, manager, user
↓
Система говорит: "John может удалять пользователей"
На примере входа на сайт
// АУТЕНТИФИКАЦИЯ: проверка пароля
if (password_verify($input_password, $user->password_hash)) {
// Пользователь прошёл аутентификацию
session_start();
$_SESSION['user_id'] = $user->id;
}
// АВТОРИЗАЦИЯ: проверка прав
if ($user->hasRole('admin')) {
// Пользователь авторизован для admin панели
redirect('/admin');
} else {
// У пользователя нет прав
redirect('/access-denied');
}
Процесс
-
Аутентификация (сначала!)
- Проверяем пароль/token
- Если OK → пользователь идентифицирован
- Если нет → 401 Unauthorized
-
Авторизация (потом!)
- Проверяем permissions/roles
- Если OK → доступ разрешён
- Если нет → 403 Forbidden
Методы аутентификации
- Логин + пароль
- OAuth 2.0
- JWT токены
- Session cookies
- API ключи
- Two-Factor Authentication (2FA)
Методы авторизации
- Role-Based Access Control (RBAC)
- Attribute-Based Access Control (ABAC)
- Access Control Lists (ACL)
- Permissions
HTTP коды
401 Unauthorized — не аутентифицирован (кто ты?)
403 Forbidden — аутентифицирован, но нет прав (что ты можешь?)
Пример в Laravel
// АУТЕНТИФИКАЦИЯ
Auth::attempt(['email' => $email, 'password' => $password]);
// Проверяет пароль, создаёт session
// АВТОРИЗАЦИЯ
if (Auth::check()) { // Аутентифицирован?
if (Auth::user()->hasRole('admin')) { // Авторизован?
// Разрешить доступ
}
}
// Или в middleware
Route::post('/admin', function() {}
->middleware('auth') // Аутентификация
->middleware('role:admin'); // Авторизация
Вывод
Аутентификация — это вход (кто ты). Авторизация — это права (что ты можешь). Сначала идентифицируешь пользователя, потом проверяешь его permissions.