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
nestingaktif - 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:
| Field | Nilai |
|---|---|
| Application name | Proxmox |
| Provider type | OAuth2/OpenID Connect |
| Redirect URI | Strict, Authorization, https://IP-PVE:8006 |
| Signing key | pilih yang tersedia |
| Encryption | nonaktif |
| Subject mode | Based 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:
| Field | Nilai |
|---|---|
| Issuer URL | http://IP-LXC:9000/application/o/<slug>/ |
| Realm | authentik |
| Client ID | (dari Authentik) |
| Client Key | (client secret dari Authentik) |
| Username claim | username |
| Autocreate users | aktif |
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.


Leave a Reply