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
| Konsep | Deskripsi |
|---|---|
| Identity provider | Keycloak — di-deploy dan dikelola oleh operator Bob. |
| Sumber pengguna | Pengguna dapat dibuat langsung di Keycloak atau difederasikan dari layanan LDAP atau Active Directory. |
| Autentikasi | Pengguna mengautentikasi melalui Keycloak menggunakan OpenID Connect (OIDC). Keycloak menerbitkan authorization code berumur pendek yang ditukarkan oleh bob-authn dengan bearer token Bob. |
| Otorisasi | Akses ke kapabilitas Bob diatur oleh peran yang ditetapkan kepada pengguna di dalam Keycloak. |
| Antarmuka konfigurasi | Integrasi 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 vendor | Tipe direktori |
|---|---|
other | OpenLDAP dan layanan direktori generik lainnya yang kompatibel dengan LDAPv3 |
ad | Microsoft Active Directory |
rhds | Red Hat Directory Server |
tivoli | IBM Security Directory Server (sebelumnya Tivoli Directory Server) |
edirectory | NetIQ / 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
- Pengguna memasukkan kredensial.
- Keycloak mengautentikasi pengguna.
- Keycloak menerbitkan authorization code berumur pendek.
bob-authnmenukarkan authorization code dengan bearer token Bob.- 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:
| Mode | userSync.enabled | Perilaku |
|---|---|---|
| On-demand | false (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) | true | Saat 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:
- Pengguna diimpor ke Keycloak.
- Pengguna diprovisioning di Bob melalui SCIM.
- Upaya login pertama gagal karena latensi pemrovisian (provisioning).
- 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.
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 pengguna | Tindakan Bob |
|---|---|
| Pengguna dibuat atau login pertama | Memprovision pengguna dan memberikan akses ke Bob |
| Pengguna diperbarui | Menyinkronkan perubahan profil |
| Pengguna dihapus dari LDAP | Mencabut akses ke Bob sambil mempertahankan data pengguna |
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 Keycloak | Peran Keycloak yang diberikan | Siapa yang ditambahkan |
|---|---|---|
bob-users | bob-user | Semua pengguna yang terautentikasi secara otomatis ditambahkan pada login berhasil pertama mereka melalui grup default realm. |
bob-admins | bob-admin | Pengguna 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:
- Tambahkan alamat email pengguna ke
adminEmailsdi file konfigurasi IDP. - Terapkan perubahan:
./bobctl configure-idp --config my-idp.yaml
Untuk mencabut hak istimewa administrator:
- Hapus alamat email dari
adminEmails. - Terapkan ulang konfigurasi.
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
| Antarmuka | URL | Tujuan |
|---|---|---|
| Konsol Admin Keycloak | https://bob-keycloak.<namespace>.<ingress-domain> | Kelola infrastruktur Keycloak, pengguna, grup, identity provider, dan pengaturan federasi. |
| UI Admin Bob | https://bob.<namespace>.<ingress-domain>/admin | Kelola pengguna Bob, peran, undangan, dan pengaturan khusus tenant. |
Operator Bob secara otomatis membuat kedua route selama instalasi.
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 keycloakAmbil kredensial administrator awal dari secret cluster:
oc get secret bob-keycloak-initial-admin \
-n <instance-namespace> \
-o jsonpath='{.data.username}' | base64 -d && echooc get secret bob-keycloak-initial-admin \
-n <instance-namespace> \
-o jsonpath='{.data.password}' | base64 -d && echoJangan 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:
| Realm | Tujuan |
|---|---|
| master | Dicadangkan untuk administrasi Keycloak. Pengguna di realm ini dapat mengelola Keycloak tetapi tidak dapat mengakses Bob. |
| bob | Berisi 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.
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-adminhanya untuk administrator cluster. - Lakukan tugas administrasi Bob di realm
bob. - Gunakan realm
masterhanya untuk administrasi infrastruktur Keycloak. - Jangan buat realm atau client tambahan kecuali secara eksplisit diperlukan dan didukung.
- Kelola federasi LDAP melalui resource
BobLDAPdaripada 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.