3 poin oleh GN⁺ 2024-02-12 | 1 komentar | Bagikan ke WhatsApp

Konfigurasi Keycloak SSO: Menggunakan Docker Compose dan Nginx

  • Keycloak adalah solusi manajemen identitas dan akses open source yang andal serta kompatibel dengan protokol SSO utama.
  • Penyiapan menggunakan Docker Compose tidak rumit, tetapi tidak terlalu intuitif, sehingga proses konfigurasinya diringkas.

Konsep

  • Menggunakan konfigurasi standar dengan Nginx sebagai reverse proxy pusat untuk meneruskan trafik ke masing-masing layanan melalui localhost.
  • Ini dianggap sebagai penyiapan yang ekonomis karena berbagi sumber daya pada satu host sambil menjaga lingkungan tetap terisolasi semaksimal mungkin.

Persiapan

  • Diperlukan alat dasar (SSH, VM dengan Linux terpasang, domain atau subdomain).
  • Untuk konfigurasi Docker rootless, buat pengguna non-root baru tanpa kata sandi bernama keycloak, perbarui rentang /etc/subuid dan /etc/subgid, instal Docker rootless, dan atur agar layanan otomatis dimulai.

Konfigurasi Keycloak

  • Masuk sebagai pengguna keycloak yang baru dibuat, lalu buat direktori untuk data permanen dan file Docker.
  • Tulis docker-compose.yml dengan merujuk ke dokumentasi resmi, lalu masukkan informasi sensitif dan yang mudah berubah ke dalam file .env.

Pengujian secara lokal

  • Uji stack Docker Compose, buat reverse SSH tunnel ke VM, lalu pastikan layar sambutan Keycloak muncul di browser.

Konfigurasi Nginx

  • Atur Nginx sebagai reverse proxy sistem, lalu buat file .conf Nginx baru untuk layanan Keycloak.
  • Tambahkan A record agar kueri DNS diarahkan ke IP VM di registrar domain.

Debug

  • Buka .tld.com, masuk ke Keycloak sebagai pengguna admin, lalu periksa log Docker Compose serta log akses dan error Nginx.
  • Jika diperlukan, periksa database Keycloak.

Build kustom dengan Dockerfile

  • Alih-alih menggunakan image prabuild dari quay.io, bangun image sendiri dengan Dockerfile.
  • Jalankan ulang Docker Compose untuk membangun image dan memulai layanan.

Kesimpulan

  • Menjalankan layanan Keycloak di belakang reverse proxy sistem Nginx dengan Docker rootless.
  • Langkah berikutnya mencakup pembaruan otomatis container Docker, penambahan login dan email layanan Keycloak, penambahan realm, serta penambahan tema.

Pendapat GN⁺:

  • Pentingnya keamanan: Kondisi web saat ini membuat sulit untuk mengejar kerentanan terkait keamanan, sehingga penting menggunakan solusi tepercaya seperti Keycloak.
  • Arsitektur yang efisien: Pendekatan yang berbagi sumber daya pada satu host sambil mengisolasi lingkungan tetap hemat biaya dan mudah dikelola.
  • Kemampuan kustomisasi: Build kustom menggunakan Dockerfile memberikan fleksibilitas untuk menyesuaikan Keycloak dengan kebutuhan sendiri.

1 komentar

 
GN⁺ 2024-02-12
Opini Hacker News
  • Pendapat pengguna yang memilih Authelia:

    • Keycloak punya banyak fitur, tetapi konfigurasinya rumit dan membutuhkan layanan tambahan.
    • Authelia tidak memiliki antarmuka pengguna dan tidak mendukung sinkronisasi dua arah dengan server LDAP, tetapi dapat dikonfigurasi dengan file statis dan variabel lingkungan sehingga cocok untuk banyak kasus.
    • Jika hanya membutuhkan autentikasi sederhana dan SSO, disarankan memulai dengan Authelia.
  • Pendapat pengguna yang punya pengalaman menggunakan JetBrains Hub dan Keycloak lalu memilih Dex:

    • JetBrains Hub sangat mudah dikonfigurasi, tetapi tidak adanya tag terbaru pada image Docker terasa merepotkan.
    • Keycloak mudah dalam mode pengembangan, tetapi sulit dikonfigurasi di lingkungan produksi nyata.
    • Pada akhirnya memilih Dex yang dokumentasinya kurang, tetapi konfigurasinya sederhana.
    • Menggabungkan OAuth2 Proxy dan template Nginx untuk menyederhanakan konfigurasi SSO.
    • Menambahkan Cloudflare Access dan WAF demi keamanan.
  • Pendapat pengguna yang membuat tabel perbandingan server OpenID Connect:

    • Terkejut dengan besarnya codebase Keycloak.
  • Pendapat pengguna tentang masalah keamanan Keycloak:

    • Melihat CVE (kerentanan yang dipublikasikan) Keycloak menimbulkan kekhawatiran soal masalah keamanannya.
  • Pendapat pengguna yang membagikan pengalaman mengimplementasikan Keycloak di AWS ECS:

    • Keycloak telah mengalami banyak perubahan dalam jangka waktu yang panjang.
    • Ada kesulitan dengan clustering, terutama masalah pada penemuan DNS dan penemuan cluster melalui UDP.
    • Login stateful tidak konsisten antarserver sehingga load balancing menjadi sulit.
  • Pendapat pengguna yang menyebut Keycloakify secara positif:

    • Keycloakify tampak seperti alternatif yang sangat baik untuk Keycloak.
  • Pendapat pengguna yang membandingkan Authelia dan Keycloak:

    • Authelia terlihat menarik, tetapi Keycloak menyediakan konektor Angular sehingga lebih mudah untuk memulai.
  • Pendapat pengguna yang membagikan pengalaman menggunakan Keycloak:

    • Keycloak memiliki konfigurasi yang rumit dan dokumentasi yang kurang, tetapi dapat dengan mudah di-deploy dan dikelola menggunakan Terraform.
  • Pendapat pengguna yang pernah menggunakan Zitadel:

    • Keycloak bisa membingungkan bagi pemula, dan Zitadel lebih mudah digunakan.
  • Pendapat pengguna yang mengeluhkan kesulitan menggunakan Keycloak:

    • Keycloak tidak menyediakan tautan reset kata sandi secara langsung dan harus ditangani melalui API.
    • Konfigurasi cluster tidak mudah, dan ada batasan pada realm.
    • Membangun sendiri sistem login yang aman berisiko atau sulit dilakukan.