Konfigurasi SSO Custom Domain

Panduan admin mendaftarkan custom domain pada Keycloak — menambahkan Valid Redirect URI, Web Origin di client, serta Content-Security-Policy di Realm Settings.

Ketika sebuah workspace mendaftarkan Custom Domain, domain baru tersebut harus didaftarkan pada Keycloak agar login (SSO) berjalan. Tanpa langkah ini, akses ke domain baru akan gagal dengan error Invalid parameter: redirect_uri, permintaan CORS ditolak, atau halaman gagal dimuat karena diblokir kebijakan keamanan browser.

Panduan ini ditujukan untuk administrator yang memiliki akses ke Keycloak Admin Console. Untuk langkah pendaftaran custom domain dari sisi Studio, lihat Custom Domain.

Login Keycloak dan Memilih Realm

  1. Buka Keycloak Admin Console dan login menggunakan akun Admin.
  2. Klik dropdown Realm di kiri atas, lalu pilih realm yang digunakan aplikasi (contoh: alurkerja).

Menambahkan Valid Redirect URI dan Web Origin ke Client

  1. Buka Client Pada sidebar, klik menu Clients, pilih client yang digunakan aplikasi, lalu buka tab Settings.

  2. Tambahkan Valid Redirect URI Pada bagian Valid redirect URIs, klik Add lalu masukkan custom domain diikuti pola /* (misalnya https://app.namadomain.com/*) agar seluruh path pada domain tersebut diizinkan sebagai tujuan redirect setelah login.

    Menambahkan custom domain pada Valid redirect URIs client Keycloak
  3. Tambahkan Web Origin Pada bagian Web origins, klik Add lalu masukkan custom domain tanpa pola /* (misalnya https://app.namadomain.com) agar permintaan CORS dari domain tersebut diizinkan.

    Menambahkan custom domain pada Web origins client Keycloak
  4. Simpan Klik Save di bagian bawah halaman agar perubahan diterapkan.

Perhatikan perbedaan formatnya: Valid redirect URIs memakai pola /* di akhir (contoh https://app.namadomain.com/*), sedangkan Web origins ditulis tanpa path (contoh https://app.namadomain.com).

Menambahkan Custom Domain ke Content Security Policy

Selain di client, custom domain juga perlu ditambahkan pada Content-Security-Policy (CSP) di level realm agar aplikasi dapat ditampilkan (misalnya di dalam iframe) tanpa diblokir oleh browser.

  1. Buka Realm Settings Pada sidebar Keycloak Admin Console, klik Realm settings.

    Menu Realm settings pada sidebar Keycloak
  2. Buka Tab Security Defenses Pilih tab Security defenses, lalu buka sub-tab Headers.

  3. Tambahkan Domain pada Content-Security-Policy Pada kolom Content-Security-Policy, tambahkan custom domain ke direktif frame-ancestors (dan direktif lain yang relevan sesuai kebutuhan). Anda dapat menuliskan domain spesifik (https://app.namadomain.com) maupun pola wildcard (https://*.namadomain.com). Klik Save untuk menyimpan.

    Pengaturan Content-Security-Policy pada tab Security defenses

Setelah menyimpan perubahan pada client maupun CSP, minta pengguna mengakses kembali custom domain. Jika halaman login sebelumnya sudah terbuka, muat ulang (refresh) browser agar konfigurasi terbaru terpakai.

Checklist

Untuk setiap custom domain baru, pastikan seluruh entri berikut sudah ditambahkan:

Lokasi di KeycloakYang ditambahkanFormat
Client → Settings → Valid redirect URIsCustom domain + /*https://app.namadomain.com/*
Client → Settings → Web originsCustom domain tanpa pathhttps://app.namadomain.com
Realm settings → Security defenses → Content-Security-PolicyCustom domain pada frame-ancestorshttps://app.namadomain.com atau https://*.namadomain.com