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.