Single Sign-On keycloak

Last reviewed 2024-04-29 UTC

Panduan ini menunjukkan cara menyiapkan Single Sign-On (SSO) antara Keycloak dan akun Cloud Identity atau Google Workspace menggunakan Penggabungan SAML. Dokumen ini menganggap bahwa Anda telah menginstal dan menggunakan Keycloak.

Tujuan

  • Konfigurasikan server Keycloak Anda agar dapat digunakan sebagai Penyedia Identitas (IdP) oleh Cloud Identity atau Google Workspace.
  • Konfigurasikan akun Cloud Identity atau Google Workspace Anda agar dapat menggunakan Keycloak untuk SSO.

Sebelum memulai

  1. Jika Anda tidak memiliki akun Cloud Identity, Daftar untuk membuat akun.
  2. Pastikan akun Cloud Identity Anda memiliki hak istimewa admin super.
  3. Jika server Keycloak Anda digunakan untuk mengelola lebih dari satu realm, tentukan realm mana yang ingin Anda gunakan untuk penggabungan.
  4. Pastikan Anda memiliki akses admin ke realm yang dipilih.

Membuat profil SAML

Untuk mengonfigurasi single sign-on dengan Keycloak, Anda harus membuat profil SAML di akun Cloud Identity atau Google Workspace terlebih dahulu. Profil SAML berisi setelan yang terkait dengan server Keycloak Anda, termasuk URL dan sertifikat penandatanganannya.

Kemudian, Anda menetapkan profil SAML ke grup atau unit organisasi tertentu.

Untuk membuat profil SAML baru di akun Cloud Identity atau Google Workspace, lakukan hal berikut:

  1. Di Konsol Admin, buka Keamanan > Autentikasi > SSO dengan IdP pihak ketiga.

    Buka SSO dengan IdP pihak ketiga

  2. Klik Profil SSO pihak ketiga > Tambahkan profil SAML.

  3. Di halaman SAML SSO profile, masukkan setelan berikut:

    • Nama: Keycloak
    • ID entitas IdP:

      Keycloak 17 atau yang lebih baru

      https://KEYCLOAK/realms/REALM
      

      Keycloak 16 atau yang lebih lama

      https://KEYCLOAK/auth/realms/REALM
      
    • URL halaman login:

      Keycloak 17 atau yang lebih baru

      https://KEYCLOAK/realms/REALM/protocol/saml
      

      Keycloak 16 atau yang lebih lama

      https://KEYCLOAK/auth/realms/REALM/protocol/saml
      
    • URL halaman logout:

      Keycloak 17 atau yang lebih baru

      https://KEYCLOAK/realms/REALM/protocol/openid-connect/logout
      

      Keycloak 16 atau yang lebih lama

      https://KEYCLOAK/auth/realms/REALM/protocol/openid-connect/logout?redirect_uri=https://KEYCLOAK/auth/realms/REALM/account/
      
    • URL ubah sandi:

      Keycloak 17 atau yang lebih baru

      https://KEYCLOAK/realms/REALM/account
      

      Keycloak 16 atau yang lebih lama

      https://KEYCLOAK/auth/realms/REALM/account
      

    Pad seluruh URL, ganti URL berikut:

    • KEYCLOAK: nama domain yang sepenuhnya memenuhi syarat (FQDN) server Keycloak Anda
    • REALM: nama realm yang Anda pilih

    Jangan upload sertifikat verifikasi dulu.

  4. Klik Simpan.

    Halaman Profil SSO SAML yang muncul berisi dua URL:

    • ID Entitas
    • URL ACS

    Anda memerlukan URL ini di bagian berikutnya saat mengonfigurasi Keycloak.

Mengonfigurasi Keycloak

Anda mengonfigurasi server Keycloak dengan membuat klien.

Membuat klien

Buat klien SAML baru di Keycloak:

  1. Login ke Keycloak dan buka konsol admin.
  2. Pilih realm yang ingin Anda gunakan untuk penggabungan.
  3. Pada menu, pilih Klien.
  4. Klik Buat klien.
  5. Konfigurasi setelan berikut untuk klien:

    Keycloak 19 atau yang lebih baru

    • Jenis klien: SAML
    • Client ID: Entity URL dari profil SSO Anda.
    • Nama: Google Cloud

    Keycloak 18 atau yang lebih lama

    • Client ID: Entity URL dari profil SSO Anda.
    • Protokol klien: SAML
    • Endpoint Klien SAML: biarkan kosong
  6. Klik Simpan.

  7. Tentukan detail untuk klien dengan mengonfigurasi setelan berikut:

    Keycloak 19 atau yang lebih baru

    Pada tab Setelan:

    • URI Pengalihan yang Valid: URL ACS dari profil SSO Anda
    • Format Nama ID: email
    • Format Nama ID otomatis: aktif
    • Menandatangani dokumen: nonaktif
    • Menandatangani Pernyataan: aktif

    Pada tab Kunci:

    • Memerlukan tanda tangan Klien: nonaktif

    Keycloak 18 atau yang lebih lama

    • Nama: Nama seperti Google Cloud
    • Menandatangani Pernyataan: aktif
    • Memerlukan tanda tangan Klien: nonaktif
    • Format Nama ID otomatis: aktif
    • Format Nama ID: email
    • URI Pengalihan yang Valid: URL ACS dari profil SSO Anda

    Pertahankan nilai default untuk seluruh setelan lainnya.

  8. Klik Simpan.

Mengekspor sertifikat penandatanganan

Setelah mengautentikasi pengguna, Keycloak akan meneruskan pernyataan SAML ke Cloud Identity atau Google Workspace. Agar Cloud Identity dan Google Workspace dapat memverifikasi integritas dan keaslian pernyataan tersebut, Keycloak menandatangani pernyataan dengan kunci penandatanganan token khusus dan memberikan sertifikat yang memungkinkan Cloud Identity atau Google Workspace untuk memeriksa tanda tangan.

Anda sedang mengekspor sertifikat penandatanganan dari Keycloak:

  1. Pada menu, pilih Setelan realm.
  2. Pilih tab Kunci.
  3. Temukan baris untuk Algoritma: RS256. Jika ada lebih dari satu baris, gunakan baris dengan Use: SIG. Kemudian, pilih Sertifikat.

    Dialog yang berisi sertifikat berenkode base64 akan muncul.

  4. Salin nilai sertifikat berenkode base64 ke papan klip.

Sebelum dapat menggunakan sertifikat penandatanganan, Anda harus mengonversinya ke dalam format PEM dengan menambahkan header dan footer.

  1. Buka editor teks seperti Notepad atau vim.
  2. Tempel header berikut, diikuti dengan baris baru:

    -----BEGIN CERTIFICATE-----
    
  3. Tempel sertifikat berenkode base64 dari papan klip.

  4. Tambahkan baris baru dan tempel footer berikut:

    -----END CERTIFICATE-----
    

    Setelah perubahan, file akan terlihat seperti berikut:

    -----BEGIN CERTIFICATE-----
    MIICmzCCAYMCBgF7v8/V1TANBgkq...
    -----END CERTIFICATE-----
    
  5. Simpan file ke lokasi sementara di komputer Anda.

Lengkapi profil SAML

Anda menggunakan sertifikat penandatanganan untuk menyelesaikan konfigurasi profil SAML:

  1. Kembali ke Konsol Admin, lalu buka Keamanan > Autentikasi > SSO dengan IdP pihak ketiga.

    Buka SSO dengan IdP pihak ketiga

  2. Buka profil SAML Keycloak yang Anda buat sebelumnya.

  3. Klik bagian IDP details untuk mengedit setelan.

  4. Klik Upload sertifikat dan pilih sertifikat penandatanganan token yang telah Anda download sebelumnya.

  5. Klik Simpan.

Profil SAML Anda sudah selesai, tetapi Anda masih perlu menetapkannya.

Menetapkan profil SAML

Pilih pengguna yang akan menggunakan profil SAML baru:

  1. Di Konsol Admin, di halaman SSO dengan IdP pihak ketiga, klik Kelola penetapan profil SSO > Kelola.

    Buka Kelola penetapan profil SSO

  2. Di panel kiri, pilih grup atau unit organisasi yang ingin Anda terapkan profil SSO. Untuk menerapkan profil ke semua pengguna, pilih unit organisasi root.

  3. Di panel kanan, pilih Profil SSO lain.

  4. Di menu, pilih profil SSO Keycloak - SAML yang Anda buat sebelumnya.

  5. Klik Simpan.

Ulangi langkah-langkah untuk menetapkan profil SAML ke grup atau unit organisasi lain.

Menguji Single Sign-On

Anda telah menyelesaikan konfigurasi Single Sign-On. Sekarang Anda dapat memeriksa apakah SSO berfungsi sebagaimana mestinya.

  1. Pilih pengguna Keycloak yang memenuhi kriteria berikut:

    • Pengguna memiliki alamat email.
    • Alamat email ini sesuai dengan alamat email utama pengguna yang sudah ada di akun Cloud Identity atau Google Workspace Anda.
    • Pengguna Cloud Identity tidak memiliki hak istimewa admin super.

      Akun pengguna yang memiliki hak istimewa admin super harus selalu login menggunakan kredensial Google, sehingga tidak cocok untuk menguji Single Sign-On.

  2. BUka jendela browser yang baru, lalu buka Konsol Google Cloud.

  3. Di halaman login dengan Google, masukkan alamat email akun pengguna, lalu klik Berikutnya.

    Halaman Login dengan Google

    Anda akan dialihkan ke Keycloak.

  4. Masukkan kredensial Keycloak Anda, lalu klik Login.

    Setelah autentikasi berhasil, Keycloak akan mengalihkan Anda kembali ke konsol Google Cloud. Karena ini adalah login pertama bagi pengguna ini, Anda akan diminta untuk menyetujui persyaratan layanan dan kebijakan privasi Google.

  5. Jika Anda menyetujui persyaratannya, klik Setuju.

  6. Anda akan dialihkan ke konsol Google Cloud, yang meminta Anda untuk mengonfirmasi preferensi dan menyetujui persyaratan layanan Google Cloud. Jika Anda menyetujui persyaratannya, klik Ya, lalu klik Setuju dan Lanjutkan.

  7. Klik ikon avatar, lalu klik Logout.

    Anda akan dialihkan ke Keycloak.

Jika Anda mengalami masalah saat login, perlu diingat bahwa akun pengguna dengan hak istimewa admin super dapat mengabaikan SSO, sehingga Anda masih dapat menggunakan konsol Admin untuk memverifikasi atau mengubah setelan.

Opsional: Konfigurasi pengalihan untuk URL layanan khusus domain

Saat menautkan ke konsol Google Cloud dari portal atau dokumen internal, Anda dapat meningkatkan pengalaman pengguna dengan menggunakan URL layanan khusus domain.

Tidak seperti URL layanan reguler seperti https://console.cloud.google.com/, URL layanan khusus domain menyertakan nama domain utama Anda. Pengguna yang tidak diautentikasi yang mengklik link ke URL layanan khusus domain akan langsung dialihkan ke Keycloak, bukan ditampilkan halaman login Google terlebih dahulu.

Contoh untuk URL layanan khusus domain mencakup:

Google service URL Logo
Konsol Google Cloud https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://console.cloud.google.com Logo Google Cloud
Google Dokumen https://docs.google.com/a/DOMAIN Logo Google Dokumen
Google Spreadsheet https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://sheets.google.com Logo Google Spreadsheet
Google Sites https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://slides.google.com Logo Google Sites
Google Drive https://drive.google.com/a/DOMAIN Logo Google Drive
Gmail https://mail.google.com/a/DOMAIN Logo Gmail
Google Grup https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://groups.google.com Logo Google Grup
Google Keep https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://keep.google.com Logo Google Keep
Looker Studio https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://lookerstudio.google.com Logo Looker Studio
YouTube https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://www.youtube.com/ Logo YouTube

Untuk mengonfigurasi URL layanan khusus domain agar dialihkan ke Keycloak, lakukan hal berikut:

  1. Di Konsol Admin, pada halaman SSO dengan IdP pihak ketiga, klik URL layanan khusus domain > Edit.

    Buka URL layanan khusus domain

  2. Tetapkan Otomatis mengalihkan pengguna ke IdP pihak ketiga di profil SSO berikut ke aktif.

  3. Tetapkan Profil SSO ke Keycloak.

  4. Klik Simpan.

Opsional: Mengonfigurasi verifikasi login

Login dengan Google mungkin meminta verifikasi tambahan kepada pengguna saat mereka login dari perangkat yang tidak dikenal atau saat upaya login mereka terlihat mencurigakan karena alasan lain. Verifikasi login ini membantu meningkatkan keamanan dan sebaiknya biarkan verifikasi login diaktifkan.

Jika Anda mendapati bahwa verifikasi login menyebabkan terlalu banyak hambatan, Anda dapat menonaktifkan verifikasi login dengan melakukan hal berikut:

  1. Di Konsol Admin, buka Keamanan > Autentikasi > Verifikasi login.
  2. Di panel kiri, pilih unit organisasi yang ingin Anda nonaktifkan verifikasi loginnya. Untuk menonaktifkan verifikasi login bagi semua pengguna, pilih unit organisasi root.
  3. Di bagian Setelan untuk pengguna yang login menggunakan profil SSO lain, pilih Jangan minta pengguna melakukan verifikasi tambahan dari Google.
  4. Klik Simpan.

Langkah selanjutnya