Manajemen pengguna

Kelola akses pengguna untuk IBM Bob on-premises menggunakan Keycloak sebagai identity provider, dengan federasi LDAP atau Active Directory maupun akun yang dikelola secara lokal.

IBM Bob on-premises menyertakan identity provider Keycloak untuk autentikasi pengguna dan manajemen akses. Pengguna dapat difederasikan dari lingkungan LDAP atau Active Directory yang sudah ada, atau dibuat langsung di Keycloak. Terlepas dari cara provisioningnya, pengguna harus diberi peran Bob yang sesuai sebelum dapat mengakses layanan.

Gambaran umum

KonsepDeskripsi
Identity providerKeycloak — di-deploy dan dikelola oleh operator Bob.
Sumber penggunaPengguna dapat dibuat langsung di Keycloak atau difederasikan dari layanan LDAP atau Active Directory.
AutentikasiPengguna mengautentikasi melalui Keycloak menggunakan OpenID Connect (OIDC). Keycloak menerbitkan authorization code berumur pendek yang ditukarkan oleh bob-authn dengan bearer token Bob.
OtorisasiAkses ke kapabilitas Bob diatur oleh peran yang ditetapkan kepada pengguna di dalam Keycloak.
Antarmuka konfigurasiIntegrasi LDAP dikelola melalui custom resource BobLDAP menggunakan perintah bobctl configure-idp.

Tipe direktori LDAP yang didukung

Bob on-premises mendukung layanan direktori mana pun yang kompatibel dengan LDAPv3. Parameter vendor dalam konfigurasi LDAP menentukan template provider Keycloak yang digunakan, yang mendefinisikan pengaturan spesifik protokol untuk tipe direktori yang dipilih.

Nilai vendorTipe direktori
otherOpenLDAP dan layanan direktori generik lainnya yang kompatibel dengan LDAPv3
adMicrosoft Active Directory
rhdsRed Hat Directory Server
tivoliIBM Security Directory Server (sebelumnya Tivoli Directory Server)
edirectoryNetIQ / Micro Focus eDirectory

Arsitektur autentikasi dan federasi

Saat pengguna masuk, Bob meneruskan permintaan ke Keycloak, yang menangani autentikasi. Semua pengguna mengautentikasi melalui Keycloak. Federasi LDAP bersifat opsional dan hanya aktif jika dikonfigurasi.

  • Federasi LDAP diaktifkan: Keycloak mengautentikasi pengguna langsung terhadap direktori LDAP. Kata sandi pengguna tetap berada di direktori LDAP dan tidak disimpan di Keycloak.
  • Federasi LDAP dinonaktifkan: Keycloak mengautentikasi pengguna menggunakan penyimpanan pengguna lokal Keycloak.

Alur autentikasi

  1. Pengguna memasukkan kredensial.
  2. Keycloak mengautentikasi pengguna.
  3. Keycloak menerbitkan authorization code berumur pendek.
  4. bob-authn menukarkan authorization code dengan bearer token Bob.
  5. Semua permintaan API berikutnya menggunakan token yang diterbitkan Bob.

Perilaku sinkronisasi pengguna

Bob on-premises mendukung dua mode sinkronisasi, dikonfigurasi melalui pengaturan userSync.enabled dalam konfigurasi LDAP:

ModeuserSync.enabledPerilaku
On-demandfalse (default)Pengguna diimpor ke Keycloak hanya saat mereka berhasil masuk untuk pertama kalinya, menghilangkan kebutuhan pemindaian direktori awal. Opsi ini direkomendasikan untuk lingkungan direktori yang sangat besar.
Eager sync (direkomendasikan)trueSaat provider LDAP didaftarkan, sinkronisasi penuh satu kali mengimpor semua pengguna dari direktori. Setelah impor awal, Keycloak secara otomatis menyinkronkan pembaruan pengguna setiap lima menit. Pendekatan ini memastikan semua pengguna segera tersedia, dan akun administrator yang ditentukan melalui adminEmails dapat diprovisioning tanpa mengharuskan pengguna untuk masuk terlebih dahulu.

Sinkronisasi on-demand

Gunakan mode ini untuk direktori yang sangat besar di mana mengimpor semua pengguna secara langsung tidak praktis.

Selama upaya autentikasi pertama:

  1. Pengguna diimpor ke Keycloak.
  2. Pengguna diprovisioning di Bob melalui SCIM.
  3. Upaya login pertama gagal karena latensi pemrovisian (provisioning).
  4. Pengguna dapat berhasil masuk setelah pemrovisian selesai.

Sinkronisasi eager

Direkomendasikan untuk sebagian besar deployment. Semua pengguna langsung tersedia setelah sinkronisasi selesai dan tidak perlu masuk untuk diprovisioning.

Catatan:

Interval sinkronisasi saat ini ditetapkan pada 5 menit.

Menyinkronkan pengguna dengan SCIM

IBM Bob on-premises menggunakan plugin SCIM 2.0 yang dikustomisasi yang tertanam di Keycloak untuk menyinkronkan akun pengguna antara Keycloak dan Bob. Operator Bob mengonfigurasi integrasi ini secara otomatis, dan tidak diperlukan konfigurasi tambahan.

Cara kerja sinkronisasi pengguna

Saat event siklus hidup pengguna terjadi di Keycloak, plugin SCIM mengirimkan event yang sesuai ke layanan bob-admin. Bob kemudian memperbarui akses pengguna dan informasi profil berdasarkan event tersebut.

Sinkronisasi ini berlaku untuk semua pengguna yang dikelola oleh Keycloak, termasuk pengguna yang terfederasi LDAP dan pengguna yang dibuat langsung di konsol administrasi Keycloak.

Event penggunaTindakan Bob
Pengguna dibuat atau login pertamaMemprovision pengguna dan memberikan akses ke Bob
Pengguna diperbaruiMenyinkronkan perubahan profil
Pengguna dihapus dari LDAPMencabut akses ke Bob sambil mempertahankan data pengguna
Catatan:

Menghapus pengguna dari LDAP mencabut akses mereka ke Bob tetapi tidak menghapus datanya. Jika pengguna ditambahkan kembali ke direktori, akses dipulihkan dan pekerjaan yang sebelumnya dibuat tetap tersedia.

Memverifikasi sinkronisasi

Bob saat ini tidak menyediakan status condition atau health check yang mengonfirmasi bahwa sinkronisasi SCIM aktif. Untuk memverifikasi bahwa provisioning berfungsi, buat atau impor pengguna uji coba dan konfirmasi bahwa pengguna muncul di Bob setelah login pertama mereka atau setelah impor userSync awal.

Mengelola peran dan keanggotaan grup

IBM Bob menggunakan grup Keycloak untuk mengontrol peran pengguna. Operator Bob secara otomatis membuat dan memelihara grup dan pemetaan peran yang diperlukan.

Grup KeycloakPeran Keycloak yang diberikanSiapa yang ditambahkan
bob-usersbob-userSemua pengguna yang terautentikasi secara otomatis ditambahkan pada login berhasil pertama mereka melalui grup default realm.
bob-adminsbob-adminPengguna yang ditentukan dalam field adminEmails dari konfigurasi BobLDAP secara otomatis ditetapkan oleh operator selama setiap siklus rekonsiliasi.

Akses administrator

Semua pengguna yang terautentikasi menerima akses standar Bob.

Untuk memberikan hak istimewa administrator:

  1. Tambahkan alamat email pengguna ke adminEmails di file konfigurasi IDP.
  2. Terapkan perubahan: ./bobctl configure-idp --config my-idp.yaml

Untuk mencabut hak istimewa administrator:

  1. Hapus alamat email dari adminEmails.
  2. Terapkan ulang konfigurasi.
Penting:

bobctl configure-idp adalah satu-satunya metode yang didukung untuk mengelola akses administrator Bob. Menambahkan alamat email ke adminEmails tidak membuat akun pengguna — pengguna harus sudah ada di Keycloak melalui federasi LDAP atau pembuatan pengguna langsung.

Mengelola Keycloak

Bob on-premises menyertakan deployment Keycloak yang menyediakan layanan manajemen identitas dan akses. Administrasi Keycloak terpisah dari administrasi Bob, dan setiap antarmuka melayani tujuan yang berbeda.

Antarmuka administrasi

AntarmukaURLTujuan
Konsol Admin Keycloakhttps://bob-keycloak.<namespace>.<ingress-domain>Kelola infrastruktur Keycloak, pengguna, grup, identity provider, dan pengaturan federasi.
UI Admin Bobhttps://bob.<namespace>.<ingress-domain>/adminKelola pengguna Bob, peran, undangan, dan pengaturan khusus tenant.

Operator Bob secara otomatis membuat kedua route selama instalasi.

Catatan:

Log aktivitas tidak tersedia di UI Admin Bob untuk rilis ini. Untuk mengakses log layanan, lihat log pod untuk layanan Authentication, Authorisation, dan Admin langsung dari konsol atau CLI OpenShift Container Platform. Untuk informasi lebih lanjut, lihat Keterbatasan yang diketahui.

Mengakses Konsol Admin Keycloak

Untuk menemukan route Keycloak di cluster-mu, jalankan:

oc get route -n <instance-namespace> | grep keycloak

Ambil kredensial administrator awal dari secret cluster:

oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.username}' | base64 -d && echo
oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.password}' | base64 -d && echo
Peringatan:

Jangan modifikasi secret bob-keycloak-initial-admin. Operator Bob menggunakan kredensial ini selama rekonsiliasi. Mengubah kredensial yang tersimpan dapat mengganggu fungsionalitas yang dikelola operator.

Jika kamu memerlukan akun administrator pribadi, masuk dengan kredensial administrator awal dan buat pengguna terpisah di realm master untuk tugas administratif rutin.

Setelah masuk, beralih ke realm bob menggunakan pemilih realm di sudut kiri atas konsol Keycloak. Semua pengguna, grup, identity provider, dan federation provider Bob dikelola dari realm ini.

Memahami realm Keycloak

Realm adalah domain manajemen yang terisolasi yang berisi pengguna, kredensial, peran, grup, dan identity provider-nya sendiri.

Bob on-premises menggunakan dua realm:

RealmTujuan
masterDicadangkan untuk administrasi Keycloak. Pengguna di realm ini dapat mengelola Keycloak tetapi tidak dapat mengakses Bob.
bobBerisi semua pengguna Bob, grup, federation provider LDAP, dan application client. Operator Bob membuat dan mengelola realm ini.

Kedua realm sepenuhnya independen. Keanggotaan atau hak istimewa di satu realm tidak memberikan akses ke resource di realm lainnya.

Catatan:

Realm bob dikelola oleh operator. Kamu dapat membuat perubahan langsung melalui konsol Keycloak, tetapi dukungan IBM terbatas untuk menyelesaikan masalah yang memengaruhi autentikasi dan akses Bob.

Mengelola federation provider LDAP

Federation provider LDAP yang dikonfigurasi melalui bobctl configure-idp atau custom resource BobLDAP terlihat di bagian User Federation dari realm bob.

Operator Bob mendaftarkan provider LDAP saat dibuat. Perubahan berikutnya yang dibuat langsung di konsol Keycloak tidak disinkronkan kembali ke custom resource BobLDAP yang sesuai.

Untuk manajemen konfigurasi yang konsisten, gunakan custom resource BobLDAP dan perintah bobctl configure-idp kapan pun memungkinkan.

Pertimbangan keamanan

Ikuti rekomendasi ini saat mengelola Keycloak:

  • Batasi akses ke secret bob-keycloak-initial-admin hanya untuk administrator cluster.
  • Lakukan tugas administrasi Bob di realm bob.
  • Gunakan realm master hanya untuk administrasi infrastruktur Keycloak.
  • Jangan buat realm atau client tambahan kecuali secara eksplisit diperlukan dan didukung.
  • Kelola federasi LDAP melalui resource BobLDAP daripada langsung mengedit pengaturan provider di konsol Keycloak.
  • Perlakukan akun administrator awal sebagai akun darurat atau bootstrap, dan gunakan akun administrator pribadi khusus untuk administrasi rutin.

Mengelola pengguna Keycloak langsung

Pengguna dapat dibuat dan dikelola langsung di dalam Keycloak tanpa mengintegrasikan direktori LDAP. Pendekatan ini cocok untuk lingkungan proof-of-concept, deployment skala kecil, atau instalasi di mana server LDAP tidak tersedia. Untuk lingkungan produksi yang sudah menggunakan layanan direktori korporat, federasi LDAP adalah pendekatan yang direkomendasikan.

Menambahkan pengguna

Untuk membuat pengguna lokal, buka bagian Users di realm bob dan buat akun pengguna baru. Setelah menyimpan pengguna, konfigurasikan kata sandi dan tetapkan keanggotaan grup yang sesuai:

  • Tambahkan pengguna ke bob-users untuk memberikan akses standar.
  • Tambahkan pengguna ke bob-users dan bob-admins untuk memberikan akses administrator.

Mengelola kata sandi

Kata sandi untuk pengguna yang dikelola secara lokal dikelola melalui konsol administrasi Keycloak. Buka record pengguna dan gunakan tab Credentials untuk membuat, memperbarui, atau mereset kata sandi pengguna.

Menghapus pengguna

Untuk mencabut akses pengguna, buka record pengguna di konsol administrasi Keycloak dan hapus atau nonaktifkan akun tersebut. Pengguna yang dinonaktifkan tidak lagi dapat mengautentikasi, sementara informasi pengguna mereka tetap tersedia di sistem.

Bagaimana topik ini?