카테고리 없음

API 인증 방식 종류 비교 250417

mezzanineX 2025. 4. 17. 07:57

q1: API 인증 방식 종류 비교

a1:

API 인증 방식 종류 비교

Bearer (OAuth2 + JWT)
- 토큰 기반 인증 방식. 헤더에 토큰 포함 (Authorization: Bearer {token})
- 상태 저장 필요 없음, 확장성 좋음
- 보안성: 높음
- 대형 서비스, 금융기관 API

API Key
- 단순한 고유 키를 요청 헤더나 URL에 포함
- 구현 쉬움
- 보안성: 낮음 (노출 위험)
- 공공 API, 외부 연동

Basic Auth
- ID:Password를 Base64 인코딩 후 헤더에 전송 (Authorization: Basic base64(id:pw))
- 단순함
- 보안성: 낮음 (SSL 필수)
- 간단한 내부 API

Session Cookie
- 서버에서 로그인 상태 저장, 쿠키로 인증
- 웹사이트 로그인에 익숙함
- 보안성: 중간 (세션 탈취 주의)
- 전통적인 웹사이트

Mutual TLS (mTLS)
- 클라이언트와 서버가 인증서를 교환하여 상호 인증
- 매우 강력함
- 보안성: 매우 높음
- 금융, 정부기관, B2B

HMAC (해시 기반)
- 메시지+시크릿 키를 해싱해서 서명
- 요청 위조 방지 가능
- 보안성: 높음
- AWS, 카카오 페이 API 등

Digest Auth
- 암호를 해싱해서 보내는 방식
- ID/PW 노출 최소화
- 보안성: 중간
- 예전 웹 서비스 API



✅ 예시: 다른 인증 헤더들
• API Key

Authorization: Api-Key abcd1234

또는

GET /api/resource?api_key=abcd1234


Basic Auth

Authorization: Basic YWRtaW46cGFzc3dvcmQ=   ← base64(admin:password)


HMAC 서명 방식 (예: AWS)

Authorization: HMAC-SHA256 Credential=accessKeyId, Signature=generatedSignature


• Mutual TLS (mTLS)
• 별도 헤더는 없고, 양쪽 모두 TLS 인증서 기반 통신을 통해 인증



✅ 결론: 언제 어떤 걸 써야 할까?

B2B/보안 요구 높은 API
- OAuth2 + JWT, mTLS

빠른 연동용 외부 API
- API Key, HMAC

내부 마이크로서비스 간 통신
- JWT, mTLS

단순한 테스트 API
- Basic Auth 또는 API Key

반응형