Keycloak sebagai Identity Provider (IdP) adalah cara menggunakan Keycloak service yang bisa mengautentikasi user. Contohnya adalah menggunakan Keycloak sebagai social login. Daripada meminta user signup di service anda, lebih baik meminta mereka menggunakan salah satu akun sosial medianya untuk login
Beberapa service yang didukung oleh Keycloak : Google, Github, Twitter, Facebook, Stackoverflow, LinkedIn, Instagram dan lain sebagainya.
Pada contoh ini kita akan memberikan akses kepada semua user yang memiliki email di Google Workspace kantor akses ke Sumologic, jadi tiap user bisa langsung mengakses dashboard Sumo Logic tanpa perlu di daftarkan satu-persatu, keuntungan menggunakan cara ini adalah source of truth, jadi tetap di Google Workspace, begitu ada karyawan baru yang join dia otomatis dapat akses, begitu juga dengan karyawan yang pergi otomatis aksesnya hilang ketika akun Googlenya dihapus
1. Dari Google Workspace
Buat Project Baru
https://console.cloud.google.com/projectcreate
Pada halaman API & Services, klik Credentials, lalu klik lagi Configure Consent Screen
Pada pilihan User Type, sesuaikan dengan kebutuhan anda
Internal : Hanya untuk user didalam organisasi anda
External : Bisa untuk semua user yang memiliki akun gmail/google workspace
disini saya menggunakan Internal
klik Create
Pada halaman App information
Informasi yang harus diisi, disini saya berikan contoh
App Name: Keycloak Jaranguda User support email: admin-workspace@jaranguda.com Authorized domains: jaranguda.com Developer contact information: admin-workspace@jaranguda.com
perhatikan bagian Authorized domains, bila anda memiliki lebih dari satu domain, tambahkan disini.
klik Save and Continue
Pada bagian scopes
klik Save and Continue
klik menu Credentials disebelah kiri, lalu klik + Create Credentials pilih OAuth client ID
Pada form isi bagian, sebagai contoh
Application type: Web Application
Name: Keycloak
Authorized redirect URIs: https://[Keycloak-URL]/realms/[REALMS]/broker/google/endpoint
, contoh https://keycloak.jaranguda.com/realms/sumologic/broker/google/endpoint
(Diambil dari Redirect URI sewaktu membuat Identity Provider)
klik Create
Copy Your Client ID dan Your Client Secret, atau download file JSON agar credential tersebut tidak hilang. Kedua informasi ini yang akan kita tambahkan di keycloak
2. Keycloak
Login sebagai admin ke Keycloak anda https://[URL-Keycloak]/admin/master/console
atau https://[URL-Keycloak]/auth
, tergantung versi Keycloak yang digunakan
Buat Realms baru
klik tanda panah kebawah di Master, klik Add realm
Pada Name, isikan nama Realms, pada contoh saya gunakan Sumologic
klik Create
Pada realms yang baru dibuat, klik Identity Provider, pilih Google pada Add Provider
Pada add Identity Provider, masukkan
Keycloak | |
---|---|
Your Client ID | Client ID |
Your Client Secret | Client Secret |
Percobaan Login
Buka URL untuk login client anda, pada kasus ini saya menggunakan Sumo Logic, saat link tersebut dibuka muncul menu baru sign in with Google dibagian paling bawah.
masukkan email dari domain Google Workspace berikut passwordnya, credential dari Google tidak akan disimpan oleh Keycloak, tetapi hanya akan mengambil session yang digunaakn untuk authentikasi.