데브허브 | DEVHUB | Centralized Authentication in NestJS Microservices with TCP & API GatewayCentralized Authentication in NestJS Microservices with TCP & API Gateway
- 마이크로서비스 환경에서 인증 로직 중복을 방지하고 보안을 강화하기 위해 중앙 집중식 인증 서비스의 필요성을 강조합니다. 🛡️
- 클라이언트 요청 처리 방식에 따라 사용자 서비스 또는 API 게이트웨이에서 토큰 유효성 검사를 수행하는 두 가지 주요 아키텍처 시나리오를 제시합니다. 🏗️
- API 게이트웨이에서 인증을 처리하는 방식이 더 깔끔하지만, 마이크로서비스 간의 안전한 통신(상호 신뢰) 확보가 중요하다고 설명합니다. 🤝
- API 게이트웨이와 인증 서비스 간의 통신에는 TCP 또는 gRPC와 같은 빠르고 동기적인 전송 계층(transport layer) 사용을 권장하며, 데모에서는 TCP를 사용합니다. ⚡
- NestJS 애플리케이션을 TCP 마이크로서비스로 설정하고,
@nestjs/microservices 패키지를 사용하여 main.ts 파일을 구성하는 방법을 보여줍니다. ⚙️
@nestjs/jwt 패키지를 활용하여 JWT(JSON Web Token)를 생성하고, JwtModule을 비밀 키 및 만료 시간과 함께 등록하는 과정을 설명합니다. 🔑
- API 게이트웨이에서
ClientModule을 등록하고 주입하여 인증 서비스의 메시지 패턴(auth-login)을 호출하는 방법을 시연합니다. 📞
- 데모를 위해 더미 유효성 검사를 사용하지만, 실제 프로덕션 환경에서는 데이터베이스 연동, 비밀번호 해싱, 환경 변수를 통한 비밀 키 관리 등 모범 사례를 따를 것을 강조합니다. ⚠️