การรักษาความปลอดภัย API ด้วย key authentication
คุณกำลังสร้าง API ที่ปลอดภัยและต้องการนำระบบตรวจสอบ API key มาใช้งาน โดย API จะตรวจสอบ key จาก header X-API-Key ของแต่ละ request และนำไปเปรียบเทียบกับ secret ที่กำหนดไว้ล่วงหน้า คุณจะใช้ฟีเจอร์ด้านความปลอดภัยของ FastAPI เพื่อสร้างระบบ authentication นี้
คลาส FastAPI และ HTTPException ถูก import ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การ Deploy AI สู่ Production ด้วย FastAPI
คำแนะนำการฝึกหัด
- Import ฟังก์ชันที่จำเป็นสำหรับการจัดการ dependencies จาก FastAPI
- สร้าง instance ของ API key header เพื่อใช้เป็น dependency สำหรับตรวจสอบ API key ที่ส่งเข้ามาใน request
- เติมโค้ดในฟังก์ชัน
verify_api_keyโดยตรวจสอบapi_keyที่รับเข้ามากับ secret key ที่กำหนดไว้ - Raise HTTP exception เมื่อมีการส่ง key ที่ไม่ถูกต้องมาใน request
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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