1. Pola Keamanan Microservices: Centralized Auth & JWT
Pendekatan terbaik untuk keamanan Microservices adalah melakukan Authentication & Validation di API Gateway, lalu meneruskan klaim identitas user (JWT / Custom Header) ke service-service di belakangnya.
2. Alur Kerja (Authentication Flow)
- Client mengirimkan username & password ke
Auth Servicevia API Gateway. Auth Servicememverifikasi kredensial dan mengembalikan **JSON Web Token (JWT)** bertanda tangan digital (Digital Signature RSA/HMAC).- Untuk setiap request selanjutnya, Client menyertakan header:
Authorization: Bearer <JWT_TOKEN>. - API Gateway memverifikasi signature JWT. Jika valid, Gateway dapat mengekstrak informasi user (User ID, Email, Role) dan me-forward request ke internal service menyertakan header internal
X-User-Id: 10492. - Internal Service percaya pada header dari Gateway (Trust Zone) tanpa perlu mengecek ulang password ke DB.
3. Struktur JSON Web Token (JWT)
Dekonstruksi Struktur JWT
HEADER: {"alg": "RS256", "typ": "JWT"}
.
PAYLOAD: {
"sub": "USR-99104",
"name": "Eko Kurniawan",
"role": "ADMIN",
"iat": 1722120000,
"exp": 1722123600
}
.
SIGNATURE: HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)