마이크로서비스 아키텍처는 각 서비스가 독립적으로 동작하므로, 보안을 한 곳에서 집중적으로 처리하는 것이 중요하다.

이때 핵심적인 역할을 하는 것이 바로 API Gateway의 인증 및 인가 처리이다.

 

API Gateway의 역할


 

API Gateway는 애플리케이션의 클라이언트와 백엔드 서비스 간의 통신을 중개한다.

모든 API 요청이 Gateway를 통과하므로 인증, 인가, 로깅, 라우팅, 로드 밸런시 등 다양한 기능을 이곳에서 집중적으로 수행할 수 있다.

 


인증(Authentication) 처리


🔑 인증이란?

사용자가 누구인지 신원을 확인하는 절차

 

🔐 인증 방식

방식 설명
Basic Authentication 사용자명/비밀번호를 헤더에 실어 요청
Token-based (JWT) 로그인 시 발급된 토큰을 통해 인증
OAuth/OpenID Connect 제3자 인증 시스템 연동 (ex. 구글 로그인 등)

 

API Gateway에서 인증의 역할

  • 모든 요청에 대해 인증 토큰 또는 자격을 심사
  • 유효하지 않은 요청은 백엔드로 전달하지 않고 차단

 

📌 예시: JWT 인증 흐름

  1. 사용자가 로그인 -> JWT 발급
  2. 이후 요청마다 Authorization 헤더에 JWT 포함
  3. Gateway는 해당 JWT의 유효성 검증 후 라우팅
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6...

 


인가(Authorization) 처리


📌 인가란?

인증된 사용자가 어떤 리소스에 접근할 수 있는지 권한을 확인하는 절차이다.

 

🎯 인가 방식

방식 설명
역할 기반 접근 제어(RBAC: Role-Based Access Control) 역할(Role)에 따라 자원 접근 제어
속성 기반 접근 제어(ABAC: Attribute-Based Access Control) 사용자 속성, 요청 컨텍스트 기반 제어
정책 기반 접근 제어(PBAC: Policy-Based Access Control) 정책 기반으로 동적 조건을 반영한 제어

 

API Gateway에서 인가의 역할

  • 인증된 사용자가 어떤 API, 메서드, 자원에 접근할 수 있는지 확인
  • ex: /admin/** 경로는 ADMIN 역할을 가진 사용자만 접근 가능

 


인증 및 인가 구현을 위한 패턴


1️⃣ 직접 인증

 

API Gateway 내부에서 토큰 검증 및 권한 체크까지 처리한다.

 

✅ 장점

  • 빠른 응답
  • 서비스에 부담 없음

 

❌ 단점

  • Gateway에 인증 로직이 복잡해질 수 있음

 

2️⃣ 토큰 전달

 

Gateway는 단순히 토큰을 전달하고, 실제 검증은 백엔드가 수행한다.

 

✅ 장점

  • 인증 로직을 각 서비스에 위임 가능

 

❌ 단점

  • 인증 중복 로직
  • 보안 분산

 

3️⃣ 외부 인증 서비스 사용

 

Gateway가 외부 인증 서버(Auth Server)와 통신하여 검증을 수행한다.

 

✅ 장점

  • 중앙 집중화
  • 유연한 확장성

 

❌ 단점

  • 외부 인증 서버 의존성

 

4️⃣ API 키 관리

 

특정 클라이언트별로 발급된 API Key를 이용한 접근 제어 방식이다.

 

✅ 장점

  • 외부 공개 API에 적합

 

❌ 단점

  • 권한 세분화 어려움

 


🚨 API Gateway에서 인증/인가 처리의 중요성


항목 설명
보안 강화 중앙에서 요청 제어, 악의적 접근 차단
확장성 보안 로직이 서비스에서 분리되어 유연한 구조 구성
효율적 유지보수 인증 로직 일원화 -> 서비스별 코드 최소화
사용자 경험 향상 빠른 실패 응답으로 UX 향상
규정 준수 GDPR, HIPAA 등 규정 대응에 용이