Ответ
Аутентификация (Authentication) — это процесс проверки подлинности субъекта (пользователя, системы). Он отвечает на вопрос «Кто ты?», подтверждая личность с помощью учетных данных (логин/пароль, токен, сертификат).
Авторизация (Authorization) — это процесс проверки прав доступа уже аутентифицированного субъекта к определенным ресурсам или действиям. Он отвечает на вопрос «Что тебе разрешено делать?».
Простая аналогия:
- Аутентификация — это предъявление паспорта (ID-карты) на входе в здание.
- Авторизация — это проверка списка доступа, разрешено ли вам входить в конкретный кабинет №501.
Технический пример (Python-подобный псевдокод):
# 1. АУТЕНТИФИКАЦИЯ: Проверяем, кто это.
def authenticate(username, password):
user = db.get_user(username)
if user and hash(password) == user.password_hash:
return user # Личность подтверждена
return None # Доступ запрещен
# 2. АВТОРИЗАЦИЯ: Проверяем права подтвержденного пользователя.
def authorize(user, required_permission):
# Проверяем роли или разрешения пользователя
if required_permission in user.permissions:
return True # Действие разрешено
return False # В доступе отказано
# Использование
current_user = authenticate("alice", "secret123")
if current_user:
if authorize(current_user, "admin_panel:write"):
print("Доступ к панели администратора разрешен.")
else:
print("У вас недостаточно прав.")
Итог: Сначала система определяет кто вы (аутентификация), а затем решает, к каким ресурсам вам можно обратиться (авторизация).