Langsung ke konten utama

Cara Mengonfigurasi Keycloak untuk Menggunakan Database Eksternal dengan Mudah


Cara Mengonfigurasi Keycloak untuk Menggunakan Database Eksternal dengan Mudah

Keycloak adalah sebuah platform open source untuk manajemen identitas dan akses yang memungkinkan Anda mengamankan aplikasi dan layanan web dengan mudah. Dengan Keycloak, Anda dapat menyediakan fitur autentikasi, otorisasi, manajemen pengguna, manajemen sesi, manajemen peran, single sign-on, dan lainnya dengan menggunakan protokol standar seperti OpenID Connect, OAuth 2.0, SAML 2.0, dan lainnya.

Keycloak membutuhkan sebuah database untuk menyimpan data yang berkaitan dengan realm, client, user, role, dan sumber daya lainnya yang dikelola oleh Keycloak. Keycloak mendukung berbagai database vendor yang dapat Anda pilih sesuai dengan kebutuhan dan preferensi Anda. Beberapa database vendor yang didukung oleh Keycloak adalah:

  • H2: Ini adalah database bawaan yang digunakan oleh Keycloak saat pertama kali dijalankan. Database ini hanya cocok untuk penggunaan development dan testing, dan tidak disarankan untuk penggunaan production. Database ini tidak memerlukan instalasi atau konfigurasi tambahan, tetapi tidak dapat bertahan jika Keycloak dihapus atau dihentikan.
  • PostgreSQL: Ini adalah database open source yang populer dan handal untuk penggunaan production. Database ini memiliki fitur seperti transaksi, replikasi, indeks, dan lainnya yang dapat meningkatkan performa dan skalabilitas Keycloak. Database ini memerlukan instalasi dan konfigurasi tambahan, tetapi dapat disesuaikan dengan mudah.
  • MySQL: Ini adalah database open source yang banyak digunakan untuk penggunaan production. Database ini memiliki fitur seperti transaksi, replikasi, indeks, dan lainnya yang dapat meningkatkan performa dan skalabilitas Keycloak. Database ini memerlukan instalasi dan konfigurasi tambahan, tetapi dapat disesuaikan dengan mudah.
  • MariaDB: Ini adalah database open source yang merupakan fork dari MySQL. Database ini memiliki fitur yang sama dengan MySQL, tetapi juga menawarkan beberapa fitur tambahan seperti Galera Cluster, XtraDB, dan lainnya yang dapat meningkatkan performa dan skalabilitas Keycloak. Database ini memerlukan instalasi dan konfigurasi tambahan, tetapi dapat disesuaikan dengan mudah.
  • Oracle: Ini adalah database komersial yang memiliki fitur yang sangat lengkap dan canggih untuk penggunaan production. Database ini memiliki fitur seperti transaksi, replikasi, indeks, partisi, dan lainnya yang dapat meningkatkan performa dan skalabilitas Keycloak. Database ini memerlukan instalasi dan konfigurasi tambahan, tetapi juga memerlukan lisensi yang mahal.
  • Microsoft SQL Server: Ini adalah database komersial yang memiliki fitur yang sangat lengkap dan canggih untuk penggunaan production. Database ini memiliki fitur seperti transaksi, replikasi, indeks, partisi, dan lainnya yang dapat meningkatkan performa dan skalabilitas Keycloak. Database ini memerlukan instalasi dan konfigurasi tambahan, tetapi juga memerlukan lisensi yang mahal.

Untuk menggunakan database dengan Keycloak, Anda perlu mengikuti langkah-langkah berikut:

Langkah 1: Menyiapkan Database

Sebelum Anda dapat menggunakan database dengan Keycloak, Anda perlu menyiapkan database yang Anda pilih terlebih dahulu. Anda perlu menginstal database di mesin yang dapat diakses oleh Keycloak, dan membuat sebuah database kosong yang akan digunakan oleh Keycloak. Anda juga perlu membuat sebuah user dan password yang akan digunakan oleh Keycloak untuk mengakses database. Anda dapat mengikuti panduan resmi dari masing-masing database vendor untuk menyiapkan database.

Langkah 2: Mengonfigurasi Keycloak

Setelah Anda menyiapkan database, Anda perlu mengonfigurasi Keycloak untuk menggunakan database tersebut. Ada beberapa cara untuk mengonfigurasi Keycloak, tergantung pada cara Anda menjalankan Keycloak. Beberapa cara yang umum adalah:

  • Menggunakan perintah start dengan parameter db: Jika Anda menjalankan Keycloak dengan menggunakan perintah start, Anda dapat menentukan database yang ingin digunakan dengan menggunakan parameter db. Anda juga perlu menentukan beberapa parameter lain seperti db-url-host, db-username, db-password, dan lainnya. Contoh perintah untuk menggunakan PostgreSQL adalah:
bin/kc.sh start --db postgres --db-url-host mypostgres --db-username myuser --db-password change_me
  • Menggunakan file konfigurasi standalone.xml: Jika Anda menjalankan Keycloak dengan menggunakan file konfigurasi standalone.xml, Anda dapat mengedit file tersebut dan mengubah beberapa elemen yang berkaitan dengan database. Anda perlu mengubah elemen datasource, driver, dan subsystem sesuai dengan database yang Anda gunakan. Anda juga perlu menentukan beberapa atribut seperti connection-url, user-name, password, dan lainnya. Contoh file konfigurasi untuk menggunakan PostgreSQL adalah:
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
    <connection-url>jdbc:postgresql://mypostgres:5432/keycloak</connection-url>
    <driver>postgresql</driver>
    <pool>
        <max-pool-size>20</max-pool-size>
    </pool>
    <security>
        <user-name>myuser</user-name>
        <password>change_me</password>
    </security>
</datasource>
<drivers>
    <driver name="postgresql" module="org.postgresql">
        <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
    </driver>
</drivers>
<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
    <web-context>auth</web-context>
    <providers>
        <provider>classpath:${jboss.home.dir}/providers/*</provider>
    </providers>
    <theme>
        <staticMaxAge>2592000</staticMaxAge>
        <cacheThemes>true</cacheThemes>
        <cacheTemplates>true</cacheTemplates>
        <dir>${jboss.home.dir}/themes</dir>
    </theme>
    <spi name="connectionsJpa">
        <provider name="default" enabled="true">
            <properties>
                <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>
                <property name="initializeEmpty" value="true"/>
                <property name="migrationStrategy" value="update"/>
                <property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/>
            </properties>
        </provider>
    </spi>
    ...
</subsystem>
  • Menggunakan file konfigurasi keycloak.properties: Jika Anda menjalankan Keycloak dengan menggunakan file konfigurasi keycloak.properties, Anda dapat mengedit file tersebut dan menambahkan beberapa properti yang berkaitan dengan database. Anda perlu menentukan beberapa properti seperti db, db-url, db-username, db-password, dan lainnya. Contoh file konfigurasi untuk menggunakan PostgreSQL adalah:
db=postgres
db-url=jdbc:postgresql://mypostgres:5432/keycloak
db-username=myuser
db-password=change_me

Langkah 3: Menjalankan Keycloak

Setelah Anda mengonfigurasi Keycloak, Anda dapat menjalankan Keycloak dengan cara yang Anda pilih. Keycloak akan otomatis membuat tabel-tabel yang dibutuhkan di database yang Anda tentukan, dan mengisi data awal yang diperlukan. Anda dapat mengakses antarmuka web Keycloak melalui browser Anda dengan mengunjungi alamat http://localhost:8080/auth. Anda akan diminta untuk membuat akun admin yang dapat digunakan untuk mengelola Keycloak.


Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Apa itu index file seperti index.html, index.php kegunaannya dan bagaimana membuat custom nya

Index file adalah file yang berfungsi sebagai halaman utama atau tampilan pertama dari sebuah website. File ini memiliki nama default yang bervariasi, tergantung pada jenis server dan konfigurasinya, namun beberapa nama default yang umum digunakan adalah index.html, index.php, index.jsp, atau index.asp.

Membersihkan cache dan dalvik-cache menggunakan link2sd

Mungkin banyak yang menanyakan kenapa internalnya selalu berkurang free space nya. Padahal tidak menginstall applikasi baru. Hanya melakukan aktifitas normal. Dan sampai pada waktunya, internal memory low dan tidak bisa menambah aplikasi baru lagi.  Ada kemungkinan file cache dari sebuah aplikasi atau dalvik yang dibuat oleh OS android sudah  mulai membengkak. Sehingga perlu di bersihkan secara manual supaya tersedia penyimpanan kosong yang banyak. Sebelum mengetahui cara membersihkan cache dan dalvik cache, kita kupas sekilas apa itu cache dan dalvik cache. Cache adalah sebuah data file sementara yang di hasilkan oleh sebuah applikasi guna mempercepat pemrosesan dimasa yang akan datang (Cache Wikipedia) .  Dalvik-cache adalah ruang kosong sementara yang di pake oleh java virtual machine untuk menjalankan aplikasi android (Dalvik Wikipedia) .