Skip to content

OPA Auth

opa-auth adalah service forward-auth middleware RAGA, dibangun di atas Bun + Express 5. Traefik (reverse proxy) memanggil service ini untuk setiap request masuk sebelum diteruskan ke service tujuan — opa-auth memvalidasi token JWT lewat Redis, meminta keputusan otorisasi ke OPA Engine, lalu meneruskan identitas user (role, nama, grant, ID) ke service downstream lewat response header.

opa-auth adalah satu dari tiga komponen subsistem OPA di RAGA:

KomponenPeran
OPA ConfigMenjalankan OPA server & menyimpan policy Rego (mesin keputusan)
OPA DataMenyinkronkan data role & grant dari User Service ke OPA
OPA AuthMenjadi gate di depan Traefik — memanggil OPA untuk setiap request

Tech Stack

LayerTeknologi
RuntimeBun 1
FrameworkExpress 5 (TypeScript)
CacheRedis DB 1 (ioredis) — validasi whitelist token
Policy EngineOPA (Open Policy Agent)
Secret ManagementInfisical SDK v5

Detail environment variable, endpoint, dan diagram alur lengkap ada di halaman Teknis.

Alur Singkat

  1. Traefik meneruskan request ke opa-auth beserta header x-forwarded-* dan Authorization.
  2. opa-auth mengecek token di Redis (whitelist), lalu bertanya ke OPA (POST /v1/data/verify_access) apakah request ini diizinkan.
  3. Jika diizinkan, opa-auth mengembalikan 200 OK beserta header identitas user (X-Auth-User-*) yang dibaca Traefik dan diteruskan ke service tujuan — service downstream tidak perlu decode JWT sendiri.
  4. Jika ditolak, opa-auth mengembalikan 401 (token invalid/expired) atau 403 (tidak diizinkan).

Ringkasan

opa-auth adalah checkpoint tunggal yang dilewati setiap request di platform RAGA sebelum sampai ke service manapun — menjadikannya komponen paling kritikal dalam rantai auth: kalau OPA mengizinkan, request lolos; kalau tidak, request berhenti di sini.