API's beveiligen met sleutel-authenticatie
Je bouwt een veilige API en moet API-sleutelverificatie implementeren. De API controleert bij elke request op een sleutel in de header X-API-Key en verifieert die tegen een vooraf gedefinieerd geheim. Je gebruikt de ingebouwde beveiligingsfuncties van FastAPI om dit authenticatiesysteem te realiseren.
De klassen FastAPI en HTTPException zijn al vooraf geïmporteerd.
Deze oefening maakt deel uit van de cursus
AI in productie brengen met FastAPI
Oefeninstructies
- Importeer de benodigde functie uit FastAPI om afhankelijkheden af te handelen.
- Maak een API key header-instantie om een dependency te maken die de binnenkomende API-sleutel in de request valideert.
- Maak de functie
verify_api_keyaf door de binnenkomendeapi_keyte vergelijken met de vooraf gedefinieerde geheime sleutel. - Gooi een HTTP-exceptie wanneer een ongeldige sleutel in de request wordt doorgegeven.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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