Защита API с помощью аутентификации по ключу
Вы создаёте защищённый API и хотите реализовать проверку API-ключа. API будет считывать ключ из заголовка X-API-Key каждого запроса и сверять его с заранее заданным секретом. Для реализации этой системы аутентификации вы воспользуетесь встроенными средствами безопасности FastAPI.
Классы FastAPI и HTTPException уже импортированы.
Это упражнение является частью курса
Развёртывание ИИ в производственной среде с помощью FastAPI
Инструкции к упражнению
- Импортируйте необходимую функцию для работы с зависимостями из FastAPI.
- Создайте экземпляр заголовка API-ключа, чтобы сформировать зависимость для проверки входящего API-ключа в запросе.
- Доработайте функцию
verify_api_key: добавьте проверку входящегоapi_keyпо заранее заданному секретному ключу. - Вызовите HTTP-исключение, если в запросе передан недействительный ключ.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import the function that handles dependencies
from fastapi import ____
from fastapi.security import APIKeyHeader
# Create the API key instance
api_key_header = ____(name="X-API-Key")
API_KEY = "your_secret_key"
# Pass the APIKeyHeader instance and verify against input api_key
def verify_api_key(api_key: str = Depends(____)):
if api_key != ____:
# Raise the HTTP exception here
raise ____(status_code=403, detail="Invalid API Key")
return api_key