Ответ
Аутентификация (Authentication) — это процесс проверки подлинности субъекта (пользователя, системы или устройства), подтверждающий, что он является тем, за кого себя выдаёт. Её роль — защитить систему, предоставив доступ только легитимным пользователям.
Основные методы:
- По знаниям: Пароль, PIN-код.
- По владению: Ключ-токен, SMS-код, сертификат.
- По свойству: Отпечаток пальца, распознавание лица (биометрия).
Пример простой аутентификации на Python/Flask:
from flask import Flask, request, jsonify
app = Flask(__name__)
users_db = {"alice": "hashed_password_123"} # На практике пароли хэшируются
@app.route('/login', methods=['POST'])
def login():
data = request.get_json()
username = data.get('username')
password_input = data.get('password')
# Проверка подлинности
stored_password = users_db.get(username)
if stored_password and verify_password(stored_password, password_input):
return jsonify({"status": "authenticated", "token": "<JWT>"}), 200
return jsonify({"error": "Invalid credentials"}), 401 # 401 Unauthorized
Важно отличать от авторизации (Authorization):
- Authentication: «Кто ты?» — проверка идентичности.
- Authorization: «Что тебе разрешено?» — проверка прав доступа к ресурсам.
Современные практики: Использование стандартов (OAuth 2.0, OpenID Connect), многофакторная аутентификация (MFA) и бессерверные токены (JWT).