Приведи пример реализации авторизации (Authorization) в HTTP-запросе.

«Приведи пример реализации авторизации (Authorization) в HTTP-запросе.» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Авторизация определяет, какие права есть у уже аутентифицированного пользователя или системы. Чаще всего она реализуется через заголовок Authorization в HTTP-запросе.

Пример с использованием JWT (JSON Web Token) в Python:

import requests

# 1. Получение токена (аутентификация)
auth_url = "https://api.example.com/login"
credentials = {"username": "user", "password": "pass"}
auth_response = requests.post(auth_url, json=credentials)
access_token = auth_response.json().get("access_token") # JWT токен

# 2. Использование токена для авторизации доступа к защищенному ресурсу
protected_url = "https://api.example.com/api/orders"
headers = {
    "Authorization": f"Bearer {access_token}" # Ключевой заголовок
}
response = requests.get(protected_url, headers=headers)
print(response.json())

Распространённые схемы заголовка Authorization:

  • Bearer Token (OAuth 2.0, JWT): Authorization: Bearer <token>
  • Basic Auth: Authorization: Basic <base64(username:password)>
  • API Key: Authorization: ApiKey <key> или X-API-Key: <key>
  • Digest Auth: Authorization: Digest <credentials>

Важно: Авторизация (Authorization) следует после аутентификации (Authentication), которая подтверждает личность.