IT/아키텍처

[API Gateway] API Gateway 인증에 대하여

_이준호_ 2024. 9. 17. 14:58

1. API Gateway 소개

API Gateway의 정의와 역할

API Gateway는 클라이언트와 백엔드 서비스 사이의 중개자 역할을 하는 서버입니다. 이는 마이크로서비스 아키텍처에서 특히 중요한 컴포넌트로, 다음과 같은 주요 역할을 수행합니다:

  1. 요청 라우팅: 클라이언트 요청을 적절한 백엔드 서비스로 전달.
  2. 프로토콜 변환: 예를 들어, HTTP에서 gRPC로의 변환을 수행.
  3. 인증 및 인가: 요청에 대한 인증을 처리하고 접근 권한을 확인.
  4. 로드 밸런싱: 여러 서버 인스턴스에 트래픽을 분산.
  5. 캐싱: 응답을 캐시하여 백엔드 부하를 줄이고 응답 시간을 개선.
  6. 모니터링 및 로깅: API 사용량과 성능 메트릭을 수집.

API Gateway가 해결하는 문제들

  1. 복잡성 관리: 마이크로서비스 아키텍처의 복잡성을 클라이언트로부터 숨김.
  2. 보안 강화: 중앙화된 인증 및 인가 처리로 보안을 향상.
  3. 성능 최적화: 캐싱과 로드 밸런싱을 통해 전체 시스템 성능을 개선.
  4. 프로토콜 다양성: 다양한 백엔드 프로토콜을 단일 인터페이스로 통합.
  5. 모니터링 용이성: API 사용량과 성능에 대한 중앙화된 모니터링을 제공.

2. API Gateway에서 인증 처리의 중요성

중앙화된 인증의 이점

  1. 일관성: 모든 API에 대해 동일한 인증 메커니즘을 적용.
  2. 단순화: 각 마이크로서비스에서 개별적으로 인증을 구현할 필요가 없어짐.
  3. 유지보수 용이성: 인증 로직의 변경이 필요할 때 한 곳에서만 수정.

보안 강화와 일관성 유지

  1. 단일 진입점: 모든 요청이 API Gateway를 통과하므로 보안 모니터링 용이.
  2. 토큰 관리: JWT와 같은 토큰 기반 인증을 중앙에서 관리.
  3. 세션 관리: 분산 환경에서도 일관된 세션 관리가 가능.
  4. 접근 제어: 세밀한 접근 제어 정책을 구현하고 적용.

간단한 nginx 를 활용한 api gateway 인증 예시

https://github.com/junholee14/nginx-gateway-example

 

GitHub - junholee14/nginx-gateway-example

Contribute to junholee14/nginx-gateway-example development by creating an account on GitHub.

github.com