Belajar Authentik - Proxy Provider Fundamentals
Episode 11 of 31

Belajar Authentik - Proxy Provider Fundamentals

Memahami proxy provider dan outpost di Authentik: mode forward auth, single application, dan proxy, outpost embedded versus standalone Docker dan Kubernetes, header yang dikirim ke aplikasi, serta contoh deployment outpost dengan Docker Compose.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Empat episode terakhir membangun jembatan OIDC untuk aplikasi modern. Tapi di dunia nyata, banyak aplikasi yang tidak mendukung OIDC, SAML, atau LDAP sama sekali: tools lama, dashboard sederhana, atau aplikasi yang hanya menerima reverse proxy biasa. Apakah mereka harus dibiarkan tanpa autentikasi? Tidak.

Di episode ini kalian akan mengenal proxy provider dan outpost — cara Authentik melindungi aplikasi apa pun tanpa mengubah kode aplikasinya. Analoginya begini: OIDC seperti meminta setiap penghuni kompleks memiliki kartu identitas masing-masing. Proxy provider seperti satu pos keamanan di gerbang kompleks — siapa pun yang lewat harus menunjukkan identitasnya di sana, terlepas dari siapa penghuninya.

Apa Itu Outpost

Outpost adalah komponen terpisah yang menjalankan logika jenis provider tertentu. Beberapa provider — proxy, LDAP, RADIUS, dan RAC — tidak berjalan di dalam core Authentik, melainkan di outpost yang bisa dideploy di mana saja asalkan bisa terhubung ke API Authentik.

Keuntungannya nyata:

  • Performa: logika provider dijalankan terpisah dari core, tidak membebani server Authentik.
  • Fleksibilitas: outpost bisa diletakkan dekat aplikasi yang dilindungi, bahkan di jaringan terisolasi.
  • Keamanan: saat outpost dibuat, Authentik menghasilkan service account dan token khusus yang hanya punya hak baca untuk outpost dan provider terkait — bukan akses penuh ke seluruh instance.
  • Sinkronisasi: setiap perubahan aplikasi atau provider langsung dikirim ke outpost lewat websocket, begitu juga health check ke core.

Embedded vs Standalone

Outpost hadir dalam dua bentuk utama:

  • Embedded outpost: berjalan di dalam proses Authentik itu sendiri. Nol konfigurasi tambahan, langsung aktif saat provider proxy dibuat. Cocok untuk lab dan jumlah aplikasi sedikit.
  • Standalone outpost: kontainer Docker atau deployment Kubernetes terpisah. Dikelola sendiri atau otomatis oleh Authentik lewat integrasi Docker socket atau Kubernetes. Cocok untuk produksi, skalabilitas, dan isolasi.

Berikut perbandingannya:

AspekEmbeddedStandalone
SetupOtomatis, tanpa langkah ekstraPerlu kontainer atau deployment
IsolasiBerbagi sumber daya coreTerpisah dan independen
SkalabilitasTerbatasBisa direplikasi dan diletakkan dekat aplikasi
PengelolaanIkut lifecycle coreOtomatis via Docker/Kubernetes integration

Mode Proxy Provider

Proxy provider punya tiga mode yang menentukan bagaimana trafik mengalir:

  • Proxy: outpost sendiri yang memproksi trafik ke satu aplikasi upstream. Outpost bertindak sebagai reverse proxy sekaligus gerbang autentikasi — cukup satu komponen yang dilindungi.
  • Forward auth (single application): reverse proxy eksternal (Traefik, NGINX, Caddy) yang meneruskan trafik, sedangkan outpost hanya bertugas memeriksa autentikasi dan otorisasi. Mode yang paling umum untuk homelab.
  • Forward auth (domain level): satu proxy provider melindungi banyak aplikasi di bawah satu domain induk. Nyaman, tapi tidak bisa menerapkan aturan otorisasi berbeda per aplikasi — kalian harus kembali ke mode single application jika butuh policy per aplikasi.

Warning

Forward auth mode domain level menggunakan satu provider untuk semua aplikasi, jadi policy yang di-bind ke provider tersebut berlaku seragam. Jika setiap aplikasi butuh aturan berbeda, pisahkan ke provider single application masing-masing.

Alur Forward Auth

Mode forward auth bekerja seperti penjaga pintu yang memanggil pusat verifikasi identitas. Urutannya:

  1. User meminta resource ke reverse proxy.
  2. Reverse proxy mengirim permintaan pengecekan ke outpost.
  3. Outpost memeriksa cookie session user; jika tidak ada, membalas dengan redirect ke Authentik.
  4. Authentik menjalankan authentication flow — lengkap dengan MFA dari episode 7.
  5. Setelah login, browser dibawa kembali ke aplikasi dengan session cookie.
  6. Outpost menyetujui, lalu menginjeksi header identitas.
  7. Reverse proxy meneruskan request plus header tersebut ke aplikasi backend.

Aplikasi tidak pernah tahu cara Authentik bekerja — ia hanya membaca header yang diberikan.

Header yang Dikirim ke Aplikasi

Header inilah yang menjadi jembatan antara Authentik dan aplikasi. Aplikasi membaca header untuk mengenali siapa yang sedang mengakses:

HeaderIsi
X-Authentik-UsernameUsername user yang login
X-Authentik-GroupsGrup user, dipisah pipa: foo|bar|baz
X-Authentik-EmailAlamat email user
X-Authentik-NameNama lengkap user
X-Authentik-UIDIdentitas user dalam bentuk hash
X-Authentik-Meta-OutpostNama outpost yang menangani request

Outpost juga menyediakan beberapa meta header tambahan, dan kalian bisa menambah header statis lewat atribut additionalHeaders pada user atau grup. Outpost mendengarkan di port 9000 untuk HTTP, 9443 untuk HTTPS, dan 9300 untuk metrik Prometheus.

Mengelola Outpost

Pengelolaan outpost berpusat di halaman Applications > Outposts pada Admin interface:

  • Create: buat outpost, pilih tipe (Proxy, LDAP, RADIUS, RAC) dan integrasi.
  • Integrasi Docker/Kubernetes: jika Authentik di-deploy dengan Docker Compose, ia otomatis mengenali Docker socket; dengan Kubernetes, ia mengenali cluster. Setelah integrasi terpasang, Authentik mengelola deploy dan update outpost secara otomatis.
  • Service connection dan token: dibuat otomatis saat outpost dibuat — simpan token ini baik-baik.
  • Health check dan system tasks: status koneksi outpost dipantau via websocket dan terlihat di dashboard System Tasks.

Important

Token outpost adalah kunci yang memberi akses baca ke konfigurasi provider. Jangan menaruhnya di file yang masuk version control — gunakan environment variable atau secret manager. Token yang bocor bisa dipakai untuk memalsukan outpost.

Contoh Deployment dengan Docker Compose

Untuk outpost standalone, Authentik menyediakan image proxy resmi. Contoh docker-compose.yml:

docker-compose.yml - outpost proxy
version: "3.8"
services:
  authentik-proxy:
    image: ghcr.io/goauthentik/proxy:2026.5.1
    container_name: authentik-proxy
    environment:
      AUTHENTIK_HOST: "https://auth.example.com"
      AUTHENTIK_INSECURE: "false"
      AUTHENTIK_TOKEN: "token-dari-halaman-outpost"
    ports:
      - "9000:9000"
      - "9300:9300"
    restart: unless-stopped
  • AUTHENTIK_HOST: alamat instance Authentik yang dipakai outpost untuk berkomunikasi.
  • AUTHENTIK_TOKEN: token yang dihasilkan saat membuat outpost di Admin interface.
  • Port 9000 untuk trafik HTTP, 9300 untuk metrik.

Lalu jalankan:

Jalankan outpost
docker compose up -d

Tip

Pada environment production, jangan hardcode token di compose file. Ganti nilai AUTHENTIK_TOKEN dengan environment variable milik host, misalnya AUTHENTIK_OUTPOST_TOKEN, agar token tidak pernah tersimpan di file yang dibagikan.

Penutup

Poin kunci episode ini:

  • Outpost menjalankan logika provider proxy, LDAP, RADIUS, dan RAC secara terpisah dari core.
  • Embedded untuk lab; standalone Docker atau Kubernetes untuk produksi.
  • Mode proxy provider: proxy, forward auth single application, dan forward auth domain level.
  • Alur forward auth: pengecekan, redirect login, cookie session, lalu injeksi header identitas.
  • Header seperti X-authentik-username dan X-authentik-groups menjadi bahasa yang dibaca aplikasi.
  • Outpost standalone bisa dijalankan dengan Docker Compose sederhana.

Fondasi sudah lengkap: kalian tahu apa itu outpost, cara kerjanya, dan cara men-deploy-nya. Di episode 12, waktunya menghubungkan outpost ini ke reverse proxy sungguhan — kalian akan mengintegrasikan Traefik dengan forward auth Authentik, lengkap dengan middleware, label, dan pengaturan header agar aplikasi kalian terlindungi dengan mulus.

Belajar Authentik - Proxy Provider Fundamentals | Belajar Authentik