Kullanıcı yönetimi
LDAP veya Active Directory federasyonu ya da yerel olarak yönetilen hesaplarla kimlik sağlayıcı olarak Keycloak'u kullanarak IBM Bob on-premises için kullanıcı erişimini yönetin.
IBM Bob on-premises, kullanıcı kimlik doğrulaması ve erişim yönetimi için bir Keycloak kimlik sağlayıcısı içerir. Kullanıcılar mevcut bir LDAP veya Active Directory ortamından federe edilebilir ya da doğrudan Keycloak içinde oluşturulabilir. Nasıl sağlandıklarından bağımsız olarak, kullanıcıların hizmete erişebilmeleri için önce uygun bir Bob rolüne atanmaları gerekir.
Genel bakış
| Kavram | Açıklama |
|---|---|
| Kimlik sağlayıcı (Identity provider) | Keycloak — Bob operatörü tarafından dağıtılır ve yönetilir. |
| Kullanıcı kaynakları | Kullanıcılar doğrudan Keycloak içinde oluşturulabilir veya bir LDAP ya da Active Directory hizmetinden federe edilebilir. |
| Kimlik doğrulama | Kullanıcılar Keycloak üzerinden OpenID Connect (OIDC) kullanarak kimlik doğrular. Keycloak, bob-authn bileşeninin bir Bob taşıyıcı (bearer) token'ı ile değiştirdiği kısa ömürlü bir yetkilendirme kodu (authorization code) düzenler. |
| Yetkilendirme | Bob yeteneklerine erişim, Keycloak içinde kullanıcılara atanan roller tarafından yönetilir. |
| Yapılandırma yüzeyi | LDAP entegrasyonu, bobctl configure-idp komutu kullanılarak BobLDAP özel kaynağı aracılığıyla yönetilir. |
Desteklenen LDAP dizin türleri
Bob on-premises, LDAPv3 uyumlu tüm dizin hizmetlerini destekler. LDAP yapılandırmasındaki vendor parametresi, seçilen dizin türü için protokole özgü ayarları tanımlayan kullanılacak Keycloak sağlayıcı şablonunu belirler.
vendor değeri | Dizin türü |
|---|---|
other | OpenLDAP ve diğer genel LDAPv3 uyumlu dizin hizmetleri |
ad | Microsoft Active Directory |
rhds | Red Hat Directory Server |
tivoli | IBM Security Directory Server (eski adıyla Tivoli Directory Server) |
edirectory | NetIQ / Micro Focus eDirectory |
Kimlik doğrulama ve federasyon mimarisi
Bir kullanıcı oturum açtığında Bob isteği kimlik doğrulamasını gerçekleştiren Keycloak'a iletir. Tüm kullanıcılar Keycloak üzerinden kimlik doğrulaması yapar. LDAP federasyonu isteğe bağlıdır ve yalnızca yapılandırıldığında etkindir.
- LDAP federasyonu etkin: Keycloak kullanıcıların kimliğini doğrudan LDAP dizini üzerinden doğrular. Kullanıcı parolaları LDAP dizininde kalır ve Keycloak'ta saklanmaz.
- LDAP federasyonu devre dışı: Keycloak kullanıcıların kimliğini yerel Keycloak kullanıcı deposunu kullanarak doğrular.
Kimlik doğrulama akışı
- Kullanıcı kimlik bilgilerini girer.
- Keycloak kullanıcının kimliğini doğrular.
- Keycloak kısa ömürlü bir yetkilendirme kodu (authorization code) düzenler.
bob-authnyetkilendirme kodunu bir Bob taşıyıcı (bearer) token'ı ile değiştirir.- Sonraki tüm API istekleri Bob tarafından düzenlenen token'ı kullanır.
Kullanıcı senkronizasyon davranışı
Bob on-premises, LDAP yapılandırmasındaki userSync.enabled ayarı aracılığıyla yapılandırılan iki senkronizasyon modunu destekler:
| Mod | userSync.enabled | Davranış |
|---|---|---|
| İsteğe bağlı (On-demand) | false (varsayılan) | Kullanıcılar yalnızca ilk kez başarıyla oturum açtıklarında Keycloak'a aktarılır ve önceden bir dizin taraması yapma gereksinimini ortadan kaldırır. Bu seçenek çok büyük dizin ortamları için önerilir. |
| Erken senkronizasyon (Eager sync) (önerilir) | true | Bir LDAP sağlayıcısı kaydedildiğinde, tek seferlik tam senkronizasyon dizindeki tüm kullanıcıları içe aktarır. İlk içe aktarmadan sonra Keycloak, kullanıcı güncellemelerini her beş dakikada bir otomatik olarak senkronize eder. Bu yaklaşım tüm kullanıcıların hemen kullanılabilir olmasını sağlar ve adminEmails aracılığıyla belirtilen yönetici hesaplarının, kullanıcıların önce oturum açmasına gerek kalmadan sağlanmasına olanak tanır. |
İsteğe bağlı senkronizasyon (On-demand)
Tüm kullanıcıları hemen içe aktarmanın pratik olmadığı çok büyük dizinler için bu modu kullanın.
İlk kimlik doğrulama girişimi sırasında:
- Kullanıcı Keycloak'a aktarılır.
- Kullanıcı SCIM aracılığıyla Bob'da sağlanır (provisioned).
- Sağlama gecikmesi nedeniyle ilk giriş denemesi başarısız olur.
- Kullanıcı, sağlama tamamlandıktan sonra başarıyla oturum açabilir.
Erken senkronizasyon (Eager sync)
Çoğu dağıtım için önerilir. Tüm kullanıcılar senkronizasyon tamamlandıktan hemen sonra kullanılabilir hale gelir ve sağlanmak için oturum açmalarına gerek kalmaz.
Senkronizasyon aralığı şu anda 5 dakika olarak sabittir.
SCIM ile kullanıcıları senkronize etme
IBM Bob on-premises, Keycloak ile Bob arasında kullanıcı hesaplarını senkronize etmek için Keycloak'a gömülü özelleştirilmiş bir SCIM 2.0 eklentisi kullanır. Bob operatörü bu entegrasyonu otomatik olarak yapılandırır ve ek bir yapılandırma gerekmez.
Kullanıcı senkronizasyonu nasıl çalışır
Keycloak'ta bir kullanıcı yaşam döngüsü olayı meydana geldiğinde, SCIM eklentisi ilgili olayı bob-admin servisine gönderir. Bob daha sonra olaya bağlı olarak kullanıcı erişimini ve profil bilgilerini günceller.
Bu senkronizasyon; LDAP ile federe edilen kullanıcılar ve doğrudan Keycloak yönetim konsolunda oluşturulan kullanıcılar dahil olmak üzere Keycloak tarafından yönetilen tüm kullanıcılar için geçerlidir.
| Kullanıcı olayı | Bob eylemi |
|---|---|
| Kullanıcı oluşturuldu veya ilk oturum açma | Kullanıcıyı sağlar ve Bob'a erişim verir |
| Kullanıcı güncellendi | Profil değişikliklerini senkronize eder |
| Kullanıcı LDAP'tan kaldırıldı | Kullanıcı verilerini korurken Bob'a erişimi iptal eder |
Bir kullanıcının LDAP'tan kaldırılması Bob'a erişimini iptal eder ancak verilerini silmez. Kullanıcı dizine yeniden eklenirse erişim geri yüklenir ve daha önce oluşturulan çalışmalar kullanılabilir durumda kalır.
Senkronizasyonu doğrulama
Bob şu anda SCIM senkronizasyonunun etkin olduğunu onaylayan bir durum koşulu veya sağlık kontrolü sağlamamaktadır. Sağlamanın çalıştığını doğrulamak için bir test kullanıcısı oluşturun veya içe aktarın ve kullanıcının ilk oturum açmasından sonra veya ilk userSync içe aktarımından sonra Bob'da göründüğünü onaylayın.
Rolleri ve grup üyeliğini yönetme
IBM Bob, kullanıcı rollerini denetlemek için Keycloak gruplarını kullanır. Bob operatörü gerekli grupları ve rol eşlemelerini otomatik olarak oluşturur ve bunların bakımını yapar.
| Keycloak grubu | Verilen Keycloak rolü | Kimler eklenir |
|---|---|---|
bob-users | bob-user | Kimliği doğrulanan tüm kullanıcılar, realm'in varsayılan grubu aracılığıyla ilk başarılı oturum açmalarında otomatik olarak eklenir. |
bob-admins | bob-admin | BobLDAP yapılandırmasının adminEmails alanında belirtilen kullanıcılar, her mutabakat (reconciliation) döngüsü sırasında operatör tarafından otomatik olarak atanır. |
Yönetici erişimi
Kimliği doğrulanan tüm kullanıcılar standart Bob erişimi alır.
Yönetici ayrıcalıkları vermek için:
- Kullanıcının e-posta adresini IDP yapılandırma dosyasındaki
adminEmailsbölümüne ekleyin. - Değişikliği uygulayın:
./bobctl configure-idp --config my-idp.yaml
Yönetici ayrıcalıklarını iptal etmek için:
- E-posta adresini
adminEmailsbölümünden kaldırın. - Yapılandırmayı yeniden uygulayın.
bobctl configure-idp, Bob yönetici erişimini yönetmek için desteklenen tek yöntemdir. adminEmails bölümüne bir e-posta adresi eklemek bir kullanıcı hesabı oluşturmaz — kullanıcının LDAP federasyonu veya doğrudan kullanıcı oluşturma yoluyla Keycloak'ta zaten mevcut olması gerekir.
Keycloak yönetimi
Bob on-premises, kimlik ve erişim yönetimi hizmetleri sağlayan bir Keycloak dağıtımı içerir. Keycloak yönetimi Bob yönetiminden ayrıdır ve her arayüz farklı bir amaca hizmet eder.
Yönetim arayüzleri
| Arayüz | URL | Amaç |
|---|---|---|
| Keycloak Admin Console | https://bob-keycloak.<namespace>.<ingress-domain> | Keycloak altyapısını, kullanıcıları, grupları, kimlik sağlayıcıları ve federasyon ayarlarını yönetin. |
| Bob Admin UI | https://bob.<namespace>.<ingress-domain>/admin | Bob kullanıcılarını, rolleri, davetiyeleri ve kiracıya özgü ayarları yönetin. |
Bob operatörü kurulum sırasında her iki route'u da otomatik olarak oluşturur.
Etkinlik günlükleri bu sürüm için Bob Admin UI'da mevcut değildir. Hizmet günlüklerine erişmek için Kimlik doğrulama hizmeti, Yetkilendirme hizmeti ve Yönetici hizmetine ait pod günlüklerini doğrudan OpenShift Container Platform konsolundan veya CLI'dan görüntüleyin. Daha fazla bilgi için bkz. Bilinen kısıtlamalar.
Keycloak Yönetim Konsoluna Erişme
Kümenizdeki Keycloak route'unu bulmak için şunu çalıştırın:
oc get route -n <instance-namespace> | grep keycloakİlk yönetici kimlik bilgilerini küme secret'ından alın:
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 && echobob-keycloak-initial-admin secret'ını değiştirmeyin. Bob operatörü mutabakat sırasında bu kimlik bilgilerini kullanır. Saklanan kimlik bilgilerini değiştirmek operatör tarafından yönetilen işlevleri kesintiye uğratabilir.
Kişisel bir yönetici hesabına ihtiyacınız varsa, ilk yönetici kimlik bilgileriyle oturum açın ve devam eden yönetim görevleri için master realm'inde ayrı bir kullanıcı oluşturun.
Oturum açtıktan sonra Keycloak konsolunun sol üst köşesindeki realm seçicisini kullanarak bob realm'ine geçin. Tüm Bob kullanıcıları, grupları, kimlik sağlayıcıları ve federasyon sağlayıcıları bu realm'den yönetilir.
Keycloak realm'lerini anlama
Bir realm; kendi kullanıcılarını, kimlik bilgilerini, rollerini, gruplarını ve kimlik sağlayıcılarını içeren yalıtılmış bir yönetim etki alanıdır.
Bob on-premises iki realm kullanır:
| Realm | Amaç |
|---|---|
| master | Keycloak yönetimi için ayrılmıştır. Bu realm'deki kullanıcılar Keycloak'u yönetebilir ancak Bob'a erişemezler. |
| bob | Tüm Bob kullanıcılarını, gruplarını, LDAP federasyon sağlayıcılarını ve uygulama istemcilerini içerir. Bob operatörü bu realm'i oluşturur ve yönetir. |
İki realm tamamen bağımsızdır. Bir realm'deki üyelik veya ayrıcalıklar, diğerindeki kaynaklara erişim hakkı vermez.
bob realm'i operatör tarafından yönetilir. Keycloak konsolu aracılığıyla doğrudan değişiklikler yapabilirsiniz, ancak IBM desteği Bob kimlik doğrulamasını ve erişimini etkileyen sorunları çözmekle sınırlıdır.
LDAP federasyon sağlayıcılarını yönetme
bobctl configure-idp veya BobLDAP özel kaynağı aracılığıyla yapılandırılan LDAP federasyon sağlayıcıları, bob realm'inin User Federation bölümünde görünür.
Bob operatörü, LDAP sağlayıcılarını oluşturulduklarında kaydeder. Daha sonra doğrudan Keycloak konsolunda yapılan değişiklikler ilgili BobLDAP özel kaynağına geri senkronize edilmez.
Tutarlı yapılandırma yönetimi için mümkün olduğunda BobLDAP özel kaynağını ve bobctl configure-idp komutlarını kullanın.
Güvenlik hususları
Keycloak'u yönetirken şu önerileri izleyin:
bob-keycloak-initial-adminsecret'ına erişimi küme yöneticileriyle kısıtlayın.- Bob yönetim görevlerini
bobrealm'inde gerçekleştirin. masterrealm'ini yalnızca Keycloak altyapı yönetimi için kullanın.- Açıkça gerekmedikçe ve desteklenmedikçe ek realm'ler veya istemciler oluşturmayın.
- Keycloak konsolunda sağlayıcı ayarlarını doğrudan düzenlemek yerine LDAP federasyonunu
BobLDAPkaynakları aracılığıyla yönetin. - İlk yönetici hesabını bir acil durum veya bootstrap hesabı olarak değerlendirin ve rutin yönetim için özel kişisel yönetici hesapları kullanın.
Doğrudan Keycloak kullanıcılarını yönetme
Kullanıcılar bir LDAP dizini entegre edilmeden doğrudan Keycloak içinde oluşturulabilir ve yönetilebilir. Bu yaklaşım kavram kanıtlama (proof-of-concept) ortamları, küçük ölçekli dağıtımlar veya bir LDAP sunucusunun bulunmadığı kurulumlar için uygundur. Halihazırda bir kurumsal dizin hizmeti kullanan üretim ortamları için LDAP federasyonu önerilen yaklaşımdır.
Kullanıcı ekleme
Yerel bir kullanıcı oluşturmak için bob realm'indeki Users bölümünü açın ve yeni bir kullanıcı hesabı oluşturun. Kullanıcıyı kaydettikten sonra bir parola yapılandırın ve uygun grup üyeliklerini atayın:
- Standart erişim vermek için kullanıcıyı bob-users grubuna ekleyin.
- Yönetici erişimi vermek için kullanıcıyı hem bob-users hem de bob-admins grubuna ekleyin.
Parolaları yönetme
Yerel olarak yönetilen kullanıcıların parolaları Keycloak yönetim konsolu üzerinden yönetilir. Kullanıcı kaydını açın ve kullanıcının parolasını oluşturmak, güncellemek veya sıfırlamak için Credentials sekmesini kullanın.
Kullanıcıyı kaldırma
Bir kullanıcının erişimini kaldırmak için Keycloak yönetim konsolunda kullanıcı kaydını açın ve hesabı silin ya da devre dışı bırakın. Devre dışı bırakılan kullanıcılar artık kimlik doğrulaması yapamazken, kullanıcı bilgileri sistemde kalmaya devam eder.