SSO Laravel API + Keycloack
Langkah 1: Instalasi Laravel dan Library Keycloak-Guard
- Buat proyek Laravel baru dengan perintah
laravel new namaproyek. - Masuk ke direktori proyek dengan perintah
cd namaproyek. - Instal library Keycloak-Guard dengan Composer menggunakan perintah
composer require laravel/keycloak-guard.
Langkah 2: Konfigurasi Keycloak
- Buka file
.envdan tambahkan konfigurasi Keycloak berikut ini:
makefile
KEYCLOAK_SERVER_URL=https://alamat-keycloak/auth
KEYCLOAK_REALM=nama-realm
KEYCLOAK_CLIENT_ID=nama-client
KEYCLOAK_CLIENT_SECRET=rahasia-client
Pastikan untuk mengganti nilai-nilai sesuai dengan konfigurasi Keycloak Anda.
- Buka file
config/auth.phpdan ubah driver ke'keycloak':
arduino
'guards' => [
'api' => [
'driver' => 'keycloak',
'provider' => 'users',
],
],
- Tambahkan konfigurasi Keycloak ke dalam file
config/services.php:
bash
'keycloak' => [
'base_url' => env('KEYCLOAK_SERVER_URL'),
'realm' => env('KEYCLOAK_REALM'),
'client_id' => env('KEYCLOAK_CLIENT_ID'),
'client_secret' => env('KEYCLOAK_CLIENT_SECRET'),
],
Langkah 3: Migrasi Database dan Routing
- Jalankan perintah
php artisan migrateuntuk membuat tabel pengguna default Laravel.
Langkah 4: Routing dan Implementasi Autentikasi
- Buka file
routes/api.phpdan tambahkan rute berikut ini sebagai contoh:
php
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::middleware('auth:api')->get('/protected', function () {
return response()->json([
'message' => 'This is a protected route.',
]);
});
Langkah 5: Uji Autentikasi
- Jalankan aplikasi Laravel dengan perintah
php artisan serve. - Buka Postman atau alat serupa untuk menguji API.
- Buat permintaan GET ke
http://localhost:8000/api/userdan atur header Authorization dengan nilaiBearer <access_token>. Gantilah<access_token>dengan token akses yang diterima setelah autentikasi Keycloak. - Anda harus menerima respons JSON yang berisi informasi pengguna terautentikasi.
Dengan langkah-langkah di atas, aplikasi Laravel API Anda harus terhubung dengan Keycloak dan mampu melakukan autentikasi menggunakan Keycloak. Pastikan untuk mengganti nilai-nilai konfigurasi dengan yang sesuai dengan konfigurasi Keycloak Anda.