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
create new project google cloud

Enable API
google cloud workspace enable apis

Pada halaman API & Services, klik Credentials, lalu klik lagi Configure Consent Screen
Configure conent screen api credentials

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
OAuth consent screen
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.
app registration google workspace
klik Save and Continue

Pada bagian scopes
oauth google workspace scopes
klik Save and Continue

klik menu Credentials disebelah kiri, lalu klik + Create Credentials pilih OAuth client ID
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)
create oauth id google workspace
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

oauth credential created in google workspace

2. Keycloak

Login sebagai admin ke Keycloak anda https://[URL-Keycloak]/admin/master/console atau https://[URL-Keycloak]/auth, tergantung versi Keycloak yang digunakan
login as admin keycloak

Buat Realms baru

klik tanda panah kebawah di Master, klik Add realm
new realms keycloak
Pada Name, isikan nama Realms, pada contoh saya gunakan Sumologic
realms name
klik Create

Pada realms yang baru dibuat, klik Identity Provider, pilih Google pada Add Provider

add google as new identity provider
Pada add Identity Provider, masukkan

GoogleKeycloak
Your Client IDClient ID
Your Client SecretClient Secret

keycloak identity provider

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.
login as google new options
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.

Leave a comment

Your email address will not be published. Required fields are marked *