Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Keamanan · Modul 15 dari 24

Belajar Microservices - Authentication & Authorization

Strategi autentikasi terpusat di API Gateway dengan OAuth2 / OpenID Connect, JWT (JSON Web Token), dan propagation token ke internal microservices.

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)

  1. Client mengirimkan username & password ke Auth Service via API Gateway.
  2. Auth Service memverifikasi kredensial dan mengembalikan **JSON Web Token (JWT)** bertanda tangan digital (Digital Signature RSA/HMAC).
  3. Untuk setiap request selanjutnya, Client menyertakan header: Authorization: Bearer <JWT_TOKEN>.
  4. 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.
  5. 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)