1. 보안 개요
- 1-1) 보안의 중요성
- 마이크로서비스 아키텍처(MSA)에서는 서비스가 파편화되어 있고 네트워크를 통한 데이터 이동이 빈번하므로 보안 설계가 매우 복잡하고 중요함
- 데이터 보호, 인증(Authentication) 및 인가(Authorization), 서비스 간 통신 암호화를 통해 시스템 전체의 신뢰성을 확보해야 함
2. OAuth2 개요
- 2-1) OAuth2란?
- 토큰 기반의 인증 및 권한 부여를 위한 업계 표준 프로토콜
- 클라이언트 애플리케이션이 사용자의 비밀번호를 직접 저장하지 않고도, 권한(Access Token)을 위임받아 리소스에 접근할 수 있게 함
- 4가지 주요 역할:
- 리소스 소유자: 데이터의 주인(사용자)
- 클라이언트: 리소스에 접근하려는 앱
- 리소스 서버: 실제 데이터가 있는 서버
- 인증 서버: 토큰을 발급하는 서버
- 2-2) OAuth2의 주요 권한 부여 방식 (Grant Types)
- Authorization Code Grant: 보안이 가장 강력한 방식이며, 서버 사이드 애플리케이션에서 주로 사용
- Implicit Grant: 별도의 코드 교환 없이 토큰을 직접 받는 방식으로, 현재는 보안 취약점 때문에 권장되지 않음
- Resource Owner Password Credentials Grant: 사용자 ID/PW를 직접 입력받아 토큰을 얻는 방식
- Client Credentials Grant: 사용자 개입 없이 시스템 간(M2M) 인증을 위해 클라이언트 자격 증명만 사용하는 방식
3. JWT (JSON Web Token) 가이드
- 3-1) JWT란?
- 정보를 JSON 객체 형태로 안전하게 전송하기 위한 자가 포함된(Self-contained) 방식의 토큰
- 웹 표준(RFC 7519)을 따르며, 점(.)을 구분자로 하는 세 부분으로 구성됨: Header(헤더), Payload(페이로드), Signature(서명).
- 공식 디버거 사이트: jwt.io
- 3-2) JWT의 핵심 특징
- 자가 포함성(Self-contained): 토큰 자체가 사용자 정보와 권한을 담고 있어, 서버가 별도의 세션 상태를 관리할 필요가 없음(Stateless)
- 간결성(Compact): 문자열이 짧아 HTTP 헤더에 담아 전송하기에 최적화되어 있음
- 신뢰 및 무결성: 서명(Signature)을 통해 데이터가 위변조되지 않았음을 서버 측에서 즉시 검증할 수 있음
4. MSA 보안 통합 전략
- API Gateway에서 1차적으로 JWT를 검증하고, 각 마이크로서비스로 요청을 전달할 때 토큰의 클레임 정보를 활용하여 세부 권한을 제어하는 것이 일반적인 전략임
'MSA' 카테고리의 다른 글
| 9 - 분산추적 (0) | 2026.02.23 |
|---|---|
| 8 - Config (0) | 2026.02.23 |
| 6 - API 게이트웨이 (0) | 2026.02.23 |
| 5 - 서킷브레이커 (0) | 2026.02.23 |
| 4 - 로드밸런싱 (0) | 2026.02.23 |