Authentication

Identity Providers

Daftar Identity Provider yang didukung AlurKerja via Keycloak, pola umum konfigurasi, dan petunjuk per-IdP (OIDC/SAML generic, social provider, enterprise).

AlurKerja memakai Keycloak sebagai Identity & Access Management (IAM) gateway. Setiap Identity Provider (IdP) yang didukung Keycloak — protokol standar maupun social/enterprise — dapat dipasang untuk meng-otentikasi user ke AlurKerja. Halaman ini berisi daftar lengkap, pola konfigurasi yang sama untuk semua IdP, dan catatan spesifik per provider.

Konsep

Browser user


AlurKerja  ──►  Keycloak  ──►  Identity Provider eksternal
     ◄──────────  token  ◄──────────  (Google / GitHub / Azure / dst.)
  • Keycloak menjadi broker — user login lewat Keycloak, Keycloak yang meneruskan ke IdP eksternal.
  • Setelah berhasil di IdP, Keycloak menerbitkan token yang dipakai AlurKerja.
  • Mapper di Keycloak menerjemahkan atribut user IdP (email, nama, role) ke format AlurKerja.

Daftar Identity Provider yang Didukung

ProviderTipeProtokolStatus di Docs
OpenID Connect v1.0 (generic)StandardOIDCPola generic di bawah
SAML v2.0 (generic)StandardSAML 2.0Pola generic di bawah
GoogleSocialOAuth 2.0 / OIDCPetunjuk di bawah
MicrosoftSocial / EnterpriseOAuth 2.0 / OIDCPetunjuk di bawah; untuk Azure Entra ID lihat Integrasi Azure Entra ID ke Keycloak
GitHubSocialOAuth 2.0Petunjuk di bawah
GitLabSocial / Self-hostedOAuth 2.0 / OIDCPetunjuk di bawah
BitbucketSocialOAuth 2.0Petunjuk di bawah
LinkedInSocialOAuth 2.0Petunjuk di bawah
FacebookSocialOAuth 2.0Petunjuk di bawah
InstagramSocialOAuth 2.0Petunjuk di bawah
X (Twitter)SocialOAuth 2.0Petunjuk di bawah
SlackSocialOAuth 2.0Petunjuk di bawah
PayPalSocialOAuth 2.0Petunjuk di bawah
Stack OverflowSocialOAuth 2.0Petunjuk di bawah
OpenShift v3EnterpriseOAuth 2.0Petunjuk di bawah
OpenShift v4EnterpriseOAuth 2.0Petunjuk di bawah

Daftar di atas mencerminkan IdP yang built-in di Keycloak. Bila environment Anda memakai versi Keycloak lebih baru, IdP lain (mis. Apple, Discord) bisa muncul sebagai opsi tambahan.

Pola Umum Konfigurasi

Pola enam langkah ini berlaku untuk semua IdP. Detail spesifik diatur di section tiap IdP di bawah.

1. Register aplikasi di IdP target

Login ke developer console / admin console IdP. Buat "OAuth Application" / "OAuth Client" / "App Registration" baru, sesuai nama yang dipakai IdP tersebut.

2. Catat Client ID dan Client Secret

Setelah register, IdP akan menerbitkan Client ID dan Client Secret (atau API Key + Secret). Simpan keduanya — Client Secret seringkali hanya tampil satu kali.

3. Daftarkan Redirect URI di IdP

Setiap IdP butuh callback URL yang akan dipanggil setelah user berhasil login. Pola URL Keycloak:

https://<keycloak-host>/realms/<realm>/broker/<alias>/endpoint
  • <keycloak-host> — host Keycloak Anda (mis. sso.alurkerja.com).
  • <realm> — realm di Keycloak (mis. internal).
  • <alias> — nama alias yang akan Anda set untuk IdP di Keycloak (mis. google, github).

4. Buat Identity Provider di Keycloak

  1. Login ke Keycloak Admin Console.
  2. Pilih realm target → menu Identity ProvidersAdd provider → pilih provider yang sesuai.
  3. Isi Alias (= bagian <alias> di Redirect URI).
  4. Tempel Client ID dan Client Secret dari Step 2.
  5. Sesuaikan opsi lain (Default Scopes, Sync Mode, Trust Email, dst.) bila perlu.

5. Atur Mapper (atribut user)

Di tab Mappers identity provider tersebut, tambahkan mapper untuk memetakan atribut IdP → user Keycloak. Yang umum:

Atribut KeycloakAtribut IdP (umum)
emailemail
firstNamegiven_name / first_name
lastNamefamily_name / last_name
usernamepreferred_username / email

6. Uji login

Buka halaman login AlurKerja → harus muncul tombol/opsi login dengan IdP yang baru ditambahkan. Selesaikan flow login dan pastikan user otomatis dibuat di Keycloak/AlurKerja.


Konfigurasi Generic Protocol

OpenID Connect v1.0 (generic)

Untuk IdP berbasis OIDC yang tidak punya integrasi khusus (mis. Auth0, Okta, Authentik, custom). Di Keycloak, pilih provider "OpenID Connect v1.0".

Yang perlu diisi:

Field KeycloakSumber
Authorization URL<issuer>/authorize (atau ambil dari discovery)
Token URL<issuer>/token
Logout URL<issuer>/logout (opsional)
Client IDdari IdP
Client Secretdari IdP
Default Scopesopenid profile email

Discovery shortcut: Keycloak bisa otomatis mengambil endpoint dengan paste URL .well-known/openid-configuration dari IdP. Lebih cepat daripada isi manual.

SAML v2.0 (generic)

Untuk enterprise on-prem (ADFS, Shibboleth, OneLogin, dst.). Di Keycloak, pilih provider "SAML v2.0".

Yang perlu diisi:

Field KeycloakSumber
Single Sign-On Service URLdari IdP metadata
Single Logout Service URLdari IdP metadata
NameID Policy Formatumumnya email
Validating X509 Certificatesertifikat publik IdP
Want AuthnRequests Signedsesuai kebijakan IdP

Import metadata XML lebih praktis: di halaman Add SAML provider, gunakan tombol Import dan unggah metadata XML dari IdP. Keycloak akan mengisi semua field otomatis.


Konfigurasi Social Provider

Google

ItemNilai
Developer consoleconsole.cloud.google.comAPIs & ServicesCredentials
Tipe aplikasiOAuth client ID → Web application
Authorized redirect URIRedirect URI Keycloak (lihat Step 3)
Scope yang umumopenid profile email
Keycloak provider aliasgoogle

Microsoft

Untuk akun Microsoft umum (consumer + work/school). Untuk Azure Entra ID enterprise, lihat halaman terpisah Integrasi Azure Entra ID ke Keycloak.

ItemNilai
Developer consoleportal.azure.comApp Registrations
Supported account typessesuaikan (Personal / Multitenant / Single tenant)
Redirect URItipe Web, isi Redirect URI Keycloak
Scope yang umumopenid profile email User.Read
Keycloak provider aliasmicrosoft

GitHub

ItemNilai
Developer consolegithub.com/settings/developersOAuth AppsNew OAuth App
Homepage URLURL AlurKerja Anda
Authorization callback URLRedirect URI Keycloak
Scope yang umumread:user user:email
Keycloak provider aliasgithub

GitLab

ItemNilai
Developer consolegitlab.com/-/user_settings/applications (atau Group/Instance Applications untuk GitLab self-hosted)
Redirect URIRedirect URI Keycloak
Scope yang umumopenid read_user email
Keycloak provider aliasgitlab
GitLab self-hostedganti Authorization URL dan Token URL ke base URL GitLab Anda

Bitbucket

ItemNilai
Developer consoleWorkspace settings → OAuth consumersAdd consumer
Callback URLRedirect URI Keycloak
Permissions yang umumAccount: Email, Account: Read
Keycloak provider aliasbitbucket

LinkedIn

ItemNilai
Developer consolelinkedin.com/developers/appsCreate app
Authorized redirect URLsRedirect URI Keycloak
Product yang harus di-addSign In with LinkedIn using OpenID Connect
Scope yang umumopenid profile email
Keycloak provider aliaslinkedin

Facebook

ItemNilai
Developer consoledevelopers.facebook.comMy AppsCreate App (tipe Consumer)
Product yang harus di-addFacebook Login
Valid OAuth Redirect URIsRedirect URI Keycloak
Scope yang umumemail public_profile
Keycloak provider aliasfacebook

Instagram

Instagram berada di bawah Meta Developer Platform — registrasinya mirip Facebook.

ItemNilai
Developer consoledevelopers.facebook.com → app → Instagram Basic Display / Instagram Login
Valid OAuth Redirect URIsRedirect URI Keycloak
Keycloak provider aliasinstagram

Instagram Basic Display API memiliki keterbatasan signifikan (read-only profile, tidak ada email). Untuk login enterprise, Google atau Microsoft umumnya lebih praktis.

X (Twitter)

ItemNilai
Developer consoledeveloper.x.comProjects & Apps → buat app
OAuth settingOAuth 2.0 enabled → set Callback URI ke Redirect URI Keycloak
Scope yang umumtweet.read users.read offline.access
Keycloak provider aliastwitter (Keycloak masih pakai nama lama "Twitter")

X API kini berbayar untuk tier tertentu. Pastikan kebutuhan login termasuk dalam tier yang Anda gunakan.

Slack

ItemNilai
Developer consoleapi.slack.com/appsCreate New AppFrom scratch
SectionOAuth & PermissionsRedirect URLs
Scope yang umum (User Token Scopes)identity.basic identity.email identity.avatar
Keycloak provider aliasslack

PayPal

ItemNilai
Developer consoledeveloper.paypal.comMy Apps & Credentials
App typeREST API app
Return URLRedirect URI Keycloak
Keycloak provider aliaspaypal

Integrasi PayPal di sini untuk login identity (Log In With PayPal), bukan untuk transaksi pembayaran.

Stack Overflow

ItemNilai
Developer consolestackapps.com/apps/oauth/register
OAuth Domainhost Keycloak Anda
Application WebsiteURL AlurKerja
Keycloak provider aliasstackoverflow

Konfigurasi Enterprise / Container Platform

OpenShift v3

ItemNilai
Tipe registerOAuth client di OpenShift
Konfigurasiedit OpenShift master config (master-config.yaml) atau via oc create -f oauthclient.yaml
Redirect URIRedirect URI Keycloak
Keycloak provider aliasopenshift-v3

OpenShift v4

Mirip v3 dengan API resource yang berbeda.

ItemNilai
Tipe registerOAuthClient (cluster-scoped resource)
Konfigurasioc apply -f oauthclient.yaml (manifest berisi redirectURIs dan secret)
Redirect URIRedirect URI Keycloak
Keycloak provider aliasopenshift-v4

Penyesuaian Mapper

Setelah identity provider aktif, tambahkan Mappers di tab Mappers identity provider Anda untuk memetakan atribut user. Mapper type yang umum dipakai:

Mapper typeKegunaan
Attribute Importer (OIDC) / Attribute Importer (SAML)Salin atribut IdP ke user attribute Keycloak.
Hardcoded User AttributeSet atribut tetap (mis. tag tenant).
Hardcoded RoleTetapkan role realm otomatis ke user IdP.
Username Template ImporterBentuk username dari beberapa atribut IdP.

Untuk contoh konkret mapper di IdP enterprise, lihat section Mappers di Integrasi Azure Entra ID ke Keycloak.

Troubleshooting

GejalaPenyebab & Solusi
Invalid redirect URI di IdPRedirect URI yang didaftarkan di IdP tidak sama persis dengan yang dipanggil Keycloak. Cek <keycloak-host>, <realm>, dan <alias> — termasuk trailing slash.
Login balik ke halaman login Keycloak tanpa errorMapper email kosong / username conflict. Cek tab Mappers, pastikan email ter-import.
User tercipta tetapi tidak punya emailIdP tidak menyertakan email di scope default. Tambah scope email (openid profile email, atau IdP-specific) dan tambahkan Attribute Importer mapper untuk email.
Login berhasil tapi user tidak masuk AlurKerjaToken Keycloak valid tapi mapping role belum jalan. Cek Default Roles realm dan mapper role.
Tombol IdP tidak muncul di halaman loginIdentity provider non-aktif, atau First Login Flow salah set. Aktifkan di Keycloak Admin Console.
SAML — error tanda tanganSertifikat IdP yang ditempel di Keycloak salah/expired. Re-import metadata XML IdP.

Lihat Juga