Django DRF: 외부 서비스를 위한 API Key 인증 방식 구현
외부 서비스나 서드파티 클라이언트가 안전하게 API를 호출할 수 있도록 하는 API Key 기반 인증 시스템 구현

API Key 인증이 필요한 이유
JWT나 세션 인증은 주로 사용자 신원 확인용
서버 대 서버 통신에서는 API Key가 적합
파트너사 서버, 외부 모니터링 시스템, 모바일 앱 백엔드 등에서 사용
APIKey 모델 설계
핵심 포인트:
API Key는 평문 저장 금지, 해시값으로 저장
prefix와 key를 분리하여 관리
is_active 필드로 소프트 삭제 구현
커스텀 인증 클래스 구현
권한 클래스 구현
View에 적용
실무 고려사항
HTTPS 필수: API Key는 평문으로 전송되므로 반드시 HTTPS 사용
키 교체 기능: 주기적 키 재발급 및 이전 키 비활성화 기능 구현
세분화된 권한: API Key별로 접근 가능한 범위를 다르게 설정
여러 인증 방식 동시 지원: JWT, 세션 인증과 함께 사용 가능
Last updated
