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ış

KavramAçı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ğrulamaKullanı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.
YetkilendirmeBob yeteneklerine erişim, Keycloak içinde kullanıcılara atanan roller tarafından yönetilir.
Yapılandırma yüzeyiLDAP 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ğeriDizin türü
otherOpenLDAP ve diğer genel LDAPv3 uyumlu dizin hizmetleri
adMicrosoft Active Directory
rhdsRed Hat Directory Server
tivoliIBM Security Directory Server (eski adıyla Tivoli Directory Server)
edirectoryNetIQ / 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ışı

  1. Kullanıcı kimlik bilgilerini girer.
  2. Keycloak kullanıcının kimliğini doğrular.
  3. Keycloak kısa ömürlü bir yetkilendirme kodu (authorization code) düzenler.
  4. bob-authn yetkilendirme kodunu bir Bob taşıyıcı (bearer) token'ı ile değiştirir.
  5. 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:

ModuserSync.enabledDavranış
İ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)trueBir 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:

  1. Kullanıcı Keycloak'a aktarılır.
  2. Kullanıcı SCIM aracılığıyla Bob'da sağlanır (provisioned).
  3. Sağlama gecikmesi nedeniyle ilk giriş denemesi başarısız olur.
  4. 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.

Not:

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çmaKullanıcıyı sağlar ve Bob'a erişim verir
Kullanıcı güncellendiProfil değişikliklerini senkronize eder
Kullanıcı LDAP'tan kaldırıldıKullanıcı verilerini korurken Bob'a erişimi iptal eder
Not:

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 grubuVerilen Keycloak rolüKimler eklenir
bob-usersbob-userKimliğ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-adminsbob-adminBobLDAP 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:

  1. Kullanıcının e-posta adresini IDP yapılandırma dosyasındaki adminEmails bölümüne ekleyin.
  2. Değişikliği uygulayın: ./bobctl configure-idp --config my-idp.yaml

Yönetici ayrıcalıklarını iptal etmek için:

  1. E-posta adresini adminEmails bölümünden kaldırın.
  2. Yapılandırmayı yeniden uygulayın.
Önemli:

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üzURLAmaç
Keycloak Admin Consolehttps://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 UIhttps://bob.<namespace>.<ingress-domain>/adminBob 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.

Not:

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 && echo
oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.password}' | base64 -d && echo
Uyarı:

bob-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:

RealmAmaç
masterKeycloak yönetimi için ayrılmıştır. Bu realm'deki kullanıcılar Keycloak'u yönetebilir ancak Bob'a erişemezler.
bobTü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.

Not:

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-admin secret'ına erişimi küme yöneticileriyle kısıtlayın.
  • Bob yönetim görevlerini bob realm'inde gerçekleştirin.
  • master realm'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 BobLDAP kaynakları 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.

Bu konu nasıl?