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
Posting Komentar