SSO (Single Sign-On) — Panduan Integrasi

Dokumen ini merupakan panduan teknis bagi pengembang untuk mengintegrasikan sistem autentikasi organisasi dengan Vivoldi Dashboard secara aman menggunakan metode RS256 di lingkungan enterprise.

Panduan ini menjelaskan langkah demi langkah dengan contoh kode nyata — mulai dari pembuatan pasangan kunci RSA di Linux hingga konfigurasi JWKS (JSON Web Key Set) dan pengiriman token JWT yang telah ditandatangani.

1. Membuat File Kunci Sertifikat

Untuk menerbitkan token JWT dengan metode RS256, diperlukan Kunci Privat (Private Key) dan Kunci Publik (Public Key) RSA.

Sepasang kunci ini merupakan elemen penting dalam proses penandatanganan dan verifikasi, serta akan digunakan pada tahap berikutnya untuk konfigurasi file JWKS dan penandatanganan token.

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 kunci privat harus digunakan hanya di dalam server dan izin aksesnya harus dibatasi untuk mencegah akses dari luar.

⚠️ Peringatan: Jangan pernah membagikan kunci privat ke luar. Jangan unggah ke repositori publik, email, atau penyimpanan cloud.

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

Unggah file sso_public.pem yang dihasilkan pada halaman [Developer → Pengaturan SSO] di Vivoldi Dashboard, dan file jwks.json akan dibuat secara otomatis.

Unggah file jwks.json yang dihasilkan ke jalur “https://yourdomain.com/.well-known/jwks.json”.

jwks.json example


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

Items

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

4. Contoh Pembuatan Token JWT

Bagian ini menjelaskan cara membuat token JWT menggunakan metode RS256 di lingkungan Java, PHP, dan Node.js.

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

💡 Fitur Khusus Enterprise

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

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

Setelah meningkatkan ke paket Enterprise dan login, Anda dapat melihat contoh kode integrasi SSO dalam berbagai bahasa.

✨ 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