Day 40 · 3/5
🌿 중급 백엔드

API 인증 방식의 종류

쉽게 이해하기

건물에 들어갈 때 신분증, 출입카드, 지문인식 등 다양한 방법으로 본인 확인을 하듯이, API도 여러 방식으로 사용자를 인증해요. 상황에 따라 간단한 비밀번호부터 복잡한 생체인식까지 다양한 보안 수준을 선택할 수 있습니다.

핵심 정리

API를 안전하게 사용하기 위한 다양한 신원 확인 방법들이 있어요.

자세히 알아보기

API 인증 방식은 크게 다섯 가지로 나눌 수 있어요. 첫째, Basic Authentication은 ID와 비밀번호를 Base64로 인코딩해서 헤더에 넣어 보내는 가장 간단한 방법이에요. 'Authorization: Basic dXNlcjpwYXNz' 형태로 보내죠. 구현은 쉽지만 HTTPS 없이 쓰면 위험해요. 둘째, API Key 방식은 서비스가 발급한 고유 키를 헤더나 쿼리 스트링에 넣어 보내요. 구글 맵 API나 날씨 API에서 많이 쓰는 방식이죠. 'api.example.com/data?api_key=abc123' 같은 형태예요. 간단하지만 키가 노출되면 누구나 사용할 수 있어서 관리가 중요합니다. 셋째, Bearer Token(JWT)은 현대 웹의 표준이에요. 로그인하면 서버가 토큰을 발급하고, 이후 요청마다 'Authorization: Bearer eyJhbGc...' 형태로 보내요. 토큰 안에 사용자 정보가 암호화돼 있어서 서버가 매번 DB를 확인할 필요가 없죠. 만료 시간도 설정할 수 있어 보안성이 높아요. 넷째, OAuth 2.0은 구글, 페이스북 같은 외부 서비스로 로그인할 때 쓰는 방식이에요. '구글로 로그인' 버튼을 누르면 구글이 인증을 대신해주고, 우리 앱은 Access Token을 받아 사용자 정보에 접근하죠. 비밀번호를 직접 다루지 않아 안전하고, 권한 범위(scope)를 세밀하게 조절할 수 있어요. 다섯째, mTLS(Mutual TLS)는 서버와 클라이언트가 서로 인증서를 교환하는 고급 방식이에요. 금융이나 기업용 API처럼 극도로 높은 보안이 필요한 곳에서 사용해요. 설정은 복잡하지만 가장 안전합니다. 실무에서는 공개 API는 API Key, 사용자별 API는 JWT, 소셜 로그인은 OAuth를 주로 선택해요.