Panduan Integrasi Vivoldi SSO (Single Sign-On)

Panduan ini merupakan dokumentasi teknis untuk developer yang ingin mengintegrasikan IdP (Identity Provider) organisasi mereka dengan Vivoldi secara aman menggunakan autentikasi JWT berbasis RS256.

Panduan ini menjelaskan proses integrasi langkah demi langkah, mulai dari pembuatan pasangan kunci RSA, konfigurasi JWKS (JSON Web Key Set), hingga penerbitan token JWT bertanda tangan dengan contoh konfigurasi server Linux yang praktis.

Peran File JWKS & Proses Verifikasi

JWKS (JSON Web Key Set) adalah format standar yang digunakan untuk menyediakan informasi public key dalam verifikasi signature JWT.
Vivoldi mengambil Public Key dari endpoint JWKS yang terdaftar untuk memverifikasi signature dan masa berlaku token JWT.

Bahkan dalam lingkungan Key Rotation, public key baru dapat didistribusikan dengan aman. Karena hanya Public Key yang dibagikan, autentikasi dapat dikonfigurasi tanpa mengekspos Private Key ke sistem eksternal.

1. Membuat File Kunci Sertifikat

Untuk menerbitkan token JWT menggunakan algoritma RS256, diperlukan pasangan RSA berupa Private Key dan Public Key.

Private Key digunakan untuk menandatangani token JWT, sedangkan Public Key didistribusikan melalui file JWKS untuk verifikasi signature oleh server Vivoldi. Demi keamanan yang lebih kuat, disarankan menggunakan panjang kunci minimal 3072 bit.

Linux Terminal


# Private Key Generation (RSA 3072-bit, PKCS#1)
$ openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out sso_private.pem

# Public Key Extraction (X.509 PEM)
$ openssl rsa -in sso_private.pem -pubout -out sso_public.pem

2. Atur Izin File

File Private Key harus digunakan hanya di dalam lingkungan server, dan izin akses file harus dibatasi seminimal mungkin untuk mencegah akses yang tidak diperlukan.

Jika Private Key bocor, penyerang dapat membuat token JWT yang valid sehingga seluruh sistem autentikasi SSO berisiko disalahgunakan.

⚠️ Peringatan: Jangan pernah mengunggah Private Key ke repositori publik atau penyimpanan bersama seperti repositori Git, email, atau cloud drive. Pada pipeline CI/CD, kelola melalui environment variable atau Secret Manager.

Linux Terminal


# Private Key: Owner-only read access (600 recommended)
$ chmod 600 sso_private.pem

# Public Key: Set to read-only (644)
$ chmod 644 sso_public.pem

# Change the owner to the application execution account when necessary (e.g., www-data)
$ chown www-data:www-data sso_*.pem

3. Membuat dan Mendaftarkan File JWKS

Di halaman [Developer → SSO Settings] pada dashboard Vivoldi, mengunggah file sso_public.pem akan secara otomatis menghasilkan file jwks.json.

File jwks.json yang dihasilkan mengikuti standar RFC 7517 JSON Web Key Set dan harus dapat diakses secara publik melalui path berikut.

https://yourdomain.com/.well-known/jwks.json
Saat memverifikasi token JWT, server Vivoldi mengambil public key dari endpoint ini untuk memverifikasi signature. Jika path salah atau endpoint tidak merespons, proses login akan gagal.

jwks.json example


{
    "keys": [
        {
            "kty": "RSA",
            "use": "sig",
            "kid": "vivoldi-sso-20251008",
            "alg": "RS256",
            "n": "AN3V-5RxI7ekeBtc5N66yHzmhib_5ES5i3ZYoU4znkNh...",
            "e": "AQAB"
        }
    ]
}

Items

kty string
Singkatan dari Key Type. Dalam SSO, digunakan kunci publik dalam format RSA.
use string
Menunjukkan tujuan dari kunci. “sig” berarti digunakan untuk tanda tangan (signature).
kid string
ID Kunci, digunakan untuk mengidentifikasi versi kunci. Contoh: vivoldi-sso-20251008
alg string
Menunjukkan algoritme tanda tangan yang digunakan. Vivoldi SSO hanya mendukung RS256 (RSA + SHA-256) untuk keamanan tingkat tinggi.
n string
Nilai modulus dari kunci publik RSA, berupa string panjang yang dikodekan dengan Base64URL.
Nilai ini digunakan bersama sso_private.pem saat membuat token autentikasi.
e string
Nilai eksponen (exponent) dari kunci publik RSA.
Biasanya disetel ke AQAB (65537).

4. Contoh Pembuatan Token JWT

Panduan ini menjelaskan cara membuat token JWT berbasis RS256 dan menjalankan proses login Vivoldi SSO di lingkungan Java, PHP, dan Node.js.

Sebelum menerbitkan token JWT, akun pengguna Vivoldi yang terhubung dengan akun organisasi harus sudah terdaftar.
Silakan daftarkan pengguna terlebih dahulu melalui halaman [Pengaturan → Manajemen Pengguna] sebelum melanjutkan.

💡 Fitur Khusus Enterprise

Vivoldi menyediakan fitur Single Sign-On (SSO) untuk pelanggan Enterprise.
Dengan mengintegrasikan sistem autentikasi organisasi, Anda dapat mengelola kebijakan keamanan secara terpusat sekaligus meningkatkan efisiensi kontrol akses.

Jika Anda ingin berkonsultasi mengenai implementasi atau deployment, silakan hubungi kami melalui halaman [Hubungi Kami].

Setelah upgrade ke paket Enterprise, contoh kode integrasi SSO untuk berbagai bahasa dapat langsung dilihat dari dashboard setelah login.

✨ Otentikasi Terpadu Kelas Enterprise

SSO (Single Sign-On) menghubungkan sistem autentikasi organisasi Anda dengan Vivoldi,
memungkinkan semua pengguna mengakses layanan dengan aman hanya melalui satu kali login.

Manajemen akun terpusat, kebijakan keamanan yang diperkuat, dan otomatisasi kontrol akses untuk keamanan dan efisiensi operasional tingkat organisasi tersedia di paket Enterprise.

Upgrade ke Enterprise