Percobaan SSO dengan Authentik di Proxmox dan Hubungkan ke Nested Proxmox

Hari ini saya coba pasang Authentik sebagai Identity Provider (IdP) di homelab, lalu saya hubungkan ke nested Proxmox untuk testing. Tulisan ini rangkuman singkat dari instalasi sampai konfigurasi login OIDC-nya. Saya pakai metode LXC di Proxmox, bukan VM, karena lebih ringan untuk lab.

Yang saya siapkan

  • LXC Debian, unprivileged, fitur nesting aktif
  • Spek: 2 core, 4 GB RAM, disk 20 GB
  • Nested Proxmox sebagai target testing login SSO

1. Buat LXC atau VM

2. Install Docker di dalam LXC

apt update && apt install -y curl
curl -fsSL https://get.docker.com | sh
docker compose version

3. Deploy Authentik

mkdir -p /opt/authentik && cd /opt/authentik
wget https://docs.goauthentik.io/compose.yml

echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env

docker compose pull
docker compose up -d

Catatan: jangan ubah atau mount /etc/timezone dan /etc/localtime di kontainer Authentik. Authentik jalan dengan timezone internal UTC, kalau diubah bisa merusak autentikasi OAuth dan SAML.

4. Setup awal Authentik

Buka http://IP-LXC:9000/if/flow/initial-setup/, lalu set password untuk user akadmin.

5. Buat Application dan Provider untuk Proxmox

Di admin interface, Applications > Applications > Create with provider:

FieldNilai
Application nameProxmox
Provider typeOAuth2/OpenID Connect
Redirect URIStrict, Authorization, https://IP-PVE:8006
Signing keypilih yang tersedia
Encryptionnonaktif
Subject modeBased on the User’s Email

Setelah submit, catat Client ID, Client Secret, dan slug aplikasi. Issuer URL-nya jadi http://IP-LXC:9000/application/o/<slug>/.

6. Tambah realm OIDC di nested Proxmox

Datacenter > Permissions > Realms > Add > Realm:

FieldNilai
Issuer URLhttp://IP-LXC:9000/application/o/<slug>/
Realmauthentik
Client ID(dari Authentik)
Client Key(client secret dari Authentik)
Username claimusername
Autocreate usersaktif

Atau lewat CLI:

pveum realm add authentik --type openid \
  --issuer-url http://IP-LXC:9000/application/o/<slug>/ \
  --client-id <client_id> --client-key <client_secret> \
  --username-claim username --autocreate 1

7. Beri hak akses user

User hasil autocreate muncul tanpa role. Tambahkan lewat Datacenter > Permissions > Add > User Permission, path /, role Administrator saja untuk lab, misal akadmin@authentik.

8. Tes login

Logout dari Proxmox, di layar login pilih Realm > authentik, lalu login pakai akun Authentik. Kalau berhasil, Proxmox bikin user baru otomatis dan saya tinggal pakai sesuai role yang sudah diberikan.

Penutup

Authentik di LXC ini cukup ringan untuk lab, dan integrasi OIDC ke Proxmox tidak butuh banyak field. Bagian yang paling sering bikin gagal biasanya cuma dua, Issuer URL yang tidak persis sama, dan redirect URI yang tidak match dengan alamat Proxmox-nya.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *