proxmox sso
Bagi kita yang sehari-hari mengelola infrastruktur server, sistem operasi, dan perangkat jaringan, manajemen akses sering kali menjadi tantangan tersendiri. Mengandalkan akun lokal (seperti pam atau pve di Proxmox) untuk setiap layanan tidak hanya merepotkan, tetapi juga menjadi celah keamanan jika infrastruktur sudah berskala besar [cite: 1.1.2].
Solusinya? Sentralisasi otentikasi menggunakan Single Sign-On (SSO).
Pada artikel kali ini, kita akan membahas cara praktis melakukan deploy Keycloak di atas Proxmox menggunakan Linux Container (LXC), lalu menghubungkan Proxmox VE ke Keycloak menggunakan protokol OpenID Connect (OIDC).
Tahap 1: Deploy Keycloak Menggunakan Proxmox LXC

Untuk mempermudah dan mempercepat proses instalasi Keycloak, kita akan menggunakan helper script dari Community Scripts. Script ini secara otomatis akan membuatkan LXC, menginstal dependensi (seperti Java/PostgreSQL), dan menjalankan Keycloak.
- Buka Proxmox Web GUI, pilih node server kamu, dan buka Shell.
- Jalankan perintah instalasi dari repositori community scripts. (Pastikan kamu memeriksa dokumentasi di web mereka untuk command paling up-to-date).
- bash -c “$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/keycloak.sh)”
- Ikuti instruksi interaktif di layar. Kamu bisa memilih pengaturan default atau advanced jika ingin menyesuaikan alokasi RAM, CPU, dan IP Statis.
- Setelah instalasi selesai, script akan menampilkan URL, Username, dan Password default untuk login ke Keycloak Admin Console.
- Akses URL tersebut melalui browser (biasanya berjalan di port
8080atau8443).
Tahap 2: Konfigurasi Keycloak untuk Proxmox (Realm & Client)

Setelah berhasil masuk ke Keycloak Admin Console, kita perlu membuat Realm dan Client khusus untuk Proxmox.
1. Membuat Realm
Di pojok kiri atas Keycloak, klik panah dropdown dan pilih Create Realm [cite: 1.2.1].
- Beri nama misalnya:
Proxmox-SSO - Pastikan realm dalam status Enabled.
2. Membuat OIDC Client
Masuk ke menu Clients di panel kiri, lalu klik Create client [cite: 1.2.1]:
- Client Type: OpenID Connect [cite: 1.2.1]
- Client ID:
proxmox-pve(Simpan ID ini, kita akan membutuhkannya nanti) [cite: 1.1.2] - Klik Next.
Pada menu Capability config:
- Aktifkan Client authentication: ON (Ini wajib agar Keycloak men-generate Client Secret) [cite: 1.2.1].
- Aktifkan Authorization: ON [cite: 1.2.1].
- Klik Next.
Pada menu Login settings:
- Root URL & Home URL: Masukkan URL Proxmox kamu, misalnya
[https://proxmox.domain.local:8006/](https://proxmox.domain.local:8006/)[cite: 1.2.1]. - Valid Redirect URIs: (PERHATIAN – Jebakan Konfigurasi) Proxmox akan menambahkan callback path internal saat proses otentikasi [cite: 1.1.2]. Kamu wajib menambahkan wildcard
/*di akhir URL, contohnya:[https://proxmox.domain.local:8006/](https://proxmox.domain.local:8006/)*[cite: 1.1.2]. - Klik Save.
3. Mengambil Client Secret
Setelah Client tersimpan, buka tab Credentials di dalam pengaturan Client tersebut, dan copy nilai dari Client Secret [cite: 1.1.2].
4. Membuat User (Opsional untuk Testing)
Masuk ke menu Users, klik Add user, buat username (misal: admin-sso), lalu di tab Credentials, set password dan matikan toggle Temporary [cite: 1.1.2].
Tahap 3: Konfigurasi Proxmox VE (Integrasi OIDC)

Sekarang saatnya memberi tahu Proxmox agar mempercayai Keycloak sebagai Identity Provider.
Tips Sertifikat: Jika Keycloak kamu menggunakan sertifikat SSL Self-Signed, Proxmox (yang berbasis Debian) akan menolak koneksi (HTTP 500 Error) [cite: 1.2.1]. Solusinya, copy file sertifikat CA Keycloak ke
/usr/share/ca-certificates/di node Proxmox, ubah ekstensinya menjadi.crt, dan jalankan perintahupdate-ca-certificatesdi terminal Proxmox [cite: 1.2.1].
Langkah integrasi via Proxmox Web GUI:
- Buka Datacenter -> Permissions -> Realms [cite: 1.1.2].
- Klik Add -> OpenID Connect Server [cite: 1.1.2].
- Isi parameter berikut:
- Realm:
Keycloak-OIDC(Nama realm lokal di Proxmox) [cite: 1.1.2] - Issuer URL:
https://<ip-atau-domain-keycloak>/realms/Proxmox-SSO(Catatan: Keycloak versi baru tidak lagi menggunakan tambahan/auth/di dalam URL) [cite: 1.2.1]. - Client ID:
proxmox-pve(Sesuai tahap 2) [cite: 1.1.2] - Client Key: (Paste Client Secret dari Tahap 2) [cite: 1.1.2]
- Username Claim:
preferred_username[cite: 1.1.2] - Autocreate Users: Centang/Aktifkan. (Ini penting agar Proxmox otomatis membuat entri user di database miliknya saat user pertama kali login via SSO) [cite: 1.1.2; 1.2.1].
- Realm:
- Simpan konfigurasi.
Tahap 4: Role-Based Access Control (RBAC) & Akses Login
Meskipun user dari Keycloak sekarang bisa login ke Proxmox, secara default mereka tidak akan melihat apa-apa (halaman kosong) karena belum memiliki izin.
Ada dua cara untuk menangani ini: First-Login Flow atau Pre-Provisioning [cite: 1.1.2]. Cara termudah jika menggunakan autocreate:
- Logout dari Proxmox.
- Di halaman login Proxmox, ganti kolom Realm dari
Linux PAMkeKeycloak-OIDC. - Klik Login, kamu akan diarahkan ke halaman login Keycloak. Masukkan username dan password yang dibuat di Tahap 2.
- Kamu akan diarahkan kembali ke Proxmox (layar masih akan kosong).
- Buka tab baru, login kembali sebagai
root@pam(administrator). - Buka Datacenter -> Permissions -> Users. Kamu akan melihat akun SSO kamu sudah terdaftar.
- Buka Datacenter -> Permissions, klik Add -> User Permission, pilih akun SSO kamu, pilih Path
/(seluruh sistem), dan tetapkan peran (Role) sebagai Administrator (atau PVEAdmin).
Atau, kamu bisa menggunakan CLI Proxmox untuk membuat grup admin dan memodifikasi Access Control List (ACL) [cite: 1.2.1]:
Bash
pveum group add sso-admin -comment "Keycloak SSO Admins"
pveum acl modify / -group sso-admin -role Administrator
pveum user modify nama.user@Keycloak-OIDC -group sso-admin
Kesimpulan
Selamat! Infrastruktur Proxmox VE kamu kini telah diamankan menggunakan SSO skala enterprise. Dengan memisahkan Identity Provider menggunakan Keycloak, kamu bisa mengelola hak akses secara terpusat, mengaktifkan fitur seperti 2FA/MFA, hingga dengan mudah mencabut akses user dari satu dashboard kontrol.
