Skydda API:er med nyckelautentisering
Du bygger ett säkert API och behöver implementera verifiering av API-nycklar. API:et kontrollerar om det finns en nyckel i rubriken X-API-Key för varje begäran och jämför den med en fördefinierad hemlighet. Du använder FastAPI:s inbyggda säkerhetsfunktioner för att implementera det här autentiseringssystemet.
Klasserna FastAPI och HTTPException har importerats i förväg.
Den här övningen är en del av kursen
Driftsättning av AI i produktion med FastAPI
Övningsinstruktioner
- Importera den funktion som behövs för att hantera beroenden från FastAPI.
- Skapa en instans av API-nyckelrubriken för att skapa ett beroende som validerar den inkommande API-nyckeln i begäran.
- Slutför funktionen
verify_api_keygenom att jämföra den inkommandeapi_keymed den fördefinierade hemliga nyckeln. - Utlös ett HTTP-undantag när en ogiltig nyckel skickas med i begäran.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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