Zarządzanie użytkownikami

Zarządzaj dostępem użytkowników dla IBM Bob on-premises, używając Keycloak jako dostawcy tożsamości, z federacją LDAP lub Active Directory albo lokalnie zarządzanymi kontami.

IBM Bob on-premises zawiera dostawcę tożsamości Keycloak do uwierzytelniania użytkowników i zarządzania dostępem. Użytkownicy mogą być federowani z istniejącego środowiska LDAP lub Active Directory albo tworzeni bezpośrednio w Keycloak. Niezależnie od sposobu ich aprowizacji, użytkownikom musi zostać przypisana odpowiednia rola Bob, zanim będą mogli uzyskać dostęp do usługi.

Przegląd

PojęcieOpis
Dostawca tożsamościKeycloak — wdrażany i zarządzany przez operatora Bob.
Źródła użytkownikówUżytkownicy mogą być tworzeni bezpośrednio w Keycloak lub federowani z usługi LDAP lub Active Directory.
UwierzytelnianieUżytkownicy uwierzytelniają się przez Keycloak za pośrednictwem OpenID Connect (OIDC). Keycloak wystawia krótkotrwały kod autoryzacyjny, który bob-authn wymienia na token nośnika (bearer) Bob.
AutoryzacjaDostęp do funkcji Bob jest kontrolowany przez role przypisane użytkownikom w ramach Keycloak.
Powierzchnia konfiguracjiIntegracja LDAP jest zarządzana za pośrednictwem zasobu niestandardowego BobLDAP przy użyciu polecenia bobctl configure-idp.

Obsługiwane typy katalogów LDAP

Bob on-premises obsługuje każdą usługę katalogową zgodną z LDAPv3. Parametr vendor w konfiguracji LDAP określa szablon dostawcy Keycloak do użycia, który definiuje ustawienia specyficzne dla protokołu dla wybranego typu katalogu.

Wartość vendorTyp katalogu
otherOpenLDAP i inne generyczne usługi katalogowe zgodne z LDAPv3
adMicrosoft Active Directory
rhdsRed Hat Directory Server
tivoliIBM Security Directory Server (wcześniej Tivoli Directory Server)
edirectoryNetIQ / Micro Focus eDirectory

Architektura uwierzytelniania i federacji

Gdy użytkownik loguje się, Bob przekazuje żądanie do Keycloak, który obsługuje uwierzytelnianie. Wszyscy użytkownicy uwierzytelniają się przez Keycloak. Federacja LDAP jest opcjonalna i aktywna tylko wtedy, gdy jest skonfigurowana.

  • Federacja LDAP włączona: Keycloak uwierzytelnia użytkowników bezpośrednio w katalogu LDAP. Hasła użytkowników pozostają w katalogu LDAP i nie są przechowywane w Keycloak.
  • Federacja LDAP wyłączona: Keycloak uwierzytelnia użytkowników przy użyciu lokalnego magazynu użytkowników Keycloak.

Przepływ uwierzytelniania

  1. Użytkownik wprowadza dane uwierzytelniające.
  2. Keycloak uwierzytelnia użytkownika.
  3. Keycloak wystawia krótkotrwały kod autoryzacyjny.
  4. bob-authn wymienia kod autoryzacyjny na token nośnika (bearer) Bob.
  5. Wszystkie kolejne żądania API używają tokenu wystawionego przez Bob.

Zachowanie synchronizacji użytkowników

Bob on-premises obsługuje dwa tryby synchronizacji, konfigurowane za pomocą ustawienia userSync.enabled w konfiguracji LDAP:

TrybuserSync.enabledZachowanie
Na żądanie (On-demand)false (domyślnie)Użytkownicy są importowani do Keycloak tylko wtedy, gdy pomyślnie zalogują się po raz pierwszy, co eliminuje wymóg wstępnego skanowania katalogu. Ta opcja jest zalecana w przypadku bardzo dużych środowisk katalogowych.
Wczesna synchronizacja (Eager sync) (zalecane)truePo zarejestrowaniu dostawcy LDAP jednorazowa pełna synchronizacja importuje wszystkich użytkowników z katalogu. Po początkowym imporcie Keycloak automatycznie synchronizuje aktualizacje użytkowników co pięć minut. To podejście gwarantuje, że wszyscy użytkownicy są natychmiast dostępni, a konta administratorów określone przez adminEmails mogą zostać aprowizowane bez konieczności wcześniejszego logowania się użytkowników.

Synchronizacja na żądanie

Użyj tego trybu w przypadku bardzo dużych katalogów, w których natychmiastowy import wszystkich użytkowników nie jest praktyczny.

Podczas pierwszej próby uwierzytelnienia:

  1. Użytkownik jest importowany do Keycloak.
  2. Użytkownik jest aprowizowany w Bob przez SCIM.
  3. Pierwsza próba logowania nie powiedzie się z powodu opóźnienia aprowizacji.
  4. Użytkownik może zalogować się pomyślnie po zakończeniu aprowizacji.

Wczesna synchronizacja

Zalecane dla większości wdrożeń. Wszyscy użytkownicy stają się dostępni natychmiast po zakończeniu synchronizacji i nie muszą się logować, aby zostać aprowizowani.

Uwaga:

Interwał synchronizacji jest obecnie stały i wynosi 5 minut.

Synchronizacja użytkowników za pomocą SCIM

IBM Bob on-premises używa dostosowanej wtyczki SCIM 2.0 osadzonej w Keycloak do synchronizacji kont użytkowników między Keycloak a Bob. Operator Bob konfiguruje tę integrację automatycznie i nie jest wymagana żadna dodatkowa konfiguracja.

Jak działa synchronizacja użytkowników

Gdy w Keycloak wystąpi zdarzenie cyklu życia użytkownika, wtyczka SCIM wysyła odpowiednie zdarzenie do usługi bob-admin. Następnie Bob aktualizuje dostęp i informacje profilowe użytkownika na podstawie zdarzenia.

Ta synchronizacja dotyczy wszystkich użytkowników zarządzanych przez Keycloak, w tym użytkowników sfederowanych przez LDAP oraz użytkowników utworzonych bezpośrednio w konsoli administracyjnej Keycloak.

Zdarzenie użytkownikaDziałanie Bob
Utworzenie użytkownika lub pierwsze logowanieAprowizuje użytkownika i przyznaje dostęp do Bob
Aktualizacja użytkownikaSynchronizuje zmiany w profilu
Usunięcie użytkownika z LDAPOdbiera dostęp do Bob, zachowując jednocześnie dane użytkownika
Uwaga:

Usunięcie użytkownika z LDAP odbiera mu dostęp do Bob, ale nie usuwa jego danych. Jeśli użytkownik zostanie ponownie dodany do katalogu, dostęp zostanie przywrócony, a wcześniej utworzona praca pozostanie dostępna.

Weryfikacja synchronizacji

Bob obecnie nie zapewnia warunku stanu ani kontroli kondycji (health check) potwierdzającej, że synchronizacja SCIM jest aktywna. Aby sprawdzić, czy aprowizacja działa, utwórz lub zaimportuj użytkownika testowego i upewnij się, że pojawia się on w Bob po pierwszym zalogowaniu lub po początkowym imporcie userSync.

Zarządzanie rolami i członkostwem w grupach

IBM Bob używa grup Keycloak do kontrolowania ról użytkowników. Operator Bob automatycznie tworzy i utrzymuje wymagane grupy oraz mapowania ról.

Grupa KeycloakPrzyznana rola KeycloakKto jest dodawany
bob-usersbob-userWszyscy uwierzytelnieni użytkownicy są automatycznie dodawani przy pierwszym udanym logowaniu za pośrednictwem domyślnej grupy realm.
bob-adminsbob-adminUżytkownicy określeni w polu adminEmails konfiguracji BobLDAP są automatycznie przypisywani przez operatora podczas każdego cyklu uzgadniania (reconciliation).

Dostęp administratora

Wszyscy uwierzytelnieni użytkownicy otrzymują standardowy dostęp do Bob.

Aby przyznać uprawnienia administratora:

  1. Dodaj adres e-mail użytkownika do adminEmails w pliku konfiguracyjnym IDP.
  2. Zastosuj zmianę: ./bobctl configure-idp --config my-idp.yaml

Aby odebrać uprawnienia administratora:

  1. Usuń adres e-mail z adminEmails.
  2. Ponownie zastosuj konfigurację.
Ważne:

bobctl configure-idp jest jedyną obsługiwaną metodą zarządzania dostępem administratora Bob. Dodanie adresu e-mail do adminEmails nie tworzy konta użytkownika — użytkownik musi już istnieć w Keycloak przez federację LDAP lub bezpośrednie tworzenie użytkownika.

Administrowanie Keycloak

Bob on-premises zawiera wdrożenie Keycloak, które zapewnia usługi zarządzania tożsamością i dostępem. Administracja Keycloak jest oddzielona od administracji Bob, a każdy interfejs służy do innych celów.

Interfejsy administracyjne

InterfejsAdres URLPrzeznaczenie
Konsola administracyjna Keycloakhttps://bob-keycloak.<namespace>.<ingress-domain>Zarządzanie infrastrukturą Keycloak, użytkownikami, grupami, dostawcami tożsamości i ustawieniami federacji.
Interfejs administracyjny Bob (Bob Admin UI)https://bob.<namespace>.<ingress-domain>/adminZarządzanie użytkownikami Bob, rolami, zaproszeniami i ustawieniami specyficznymi dla dzierżawy (tenant).

Operator Bob automatycznie tworzy obie trasy podczas instalacji.

Uwaga:

Dzienniki aktywności nie są dostępne w interfejsie administracyjnym Bob w tym wydaniu. Aby uzyskać dostęp do dzienników usług, wyświetl dzienniki podów dla usługi uwierzytelniania, usługi autoryzacji i usługi administracyjnej bezpośrednio z konsoli lub CLI OpenShift Container Platform. Aby uzyskać więcej informacji, zobacz Znane ograniczenia.

Dostęp do konsoli administracyjnej Keycloak

Aby znaleźć trasę Keycloak w klastrze, uruchom:

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

Pobierz początkowe dane uwierzytelniające administratora z sekretu klastra:

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
Ostrzeżenie:

Nie modyfikuj sekretu bob-keycloak-initial-admin. Operator Bob używa tych poświadczeń podczas uzgadniania (reconciliation). Zmiana przechowywanych poświadczeń może zakłócić funkcje zarządzane przez operatora.

Jeśli potrzebujesz osobistego konta administratora, zaloguj się przy użyciu początkowych danych logowania administratora i utwórz osobnego użytkownika w realm master do bieżących zadań administracyjnych.

Po zalogowaniu przełącz się na realm bob za pomocą selektora realm w lewym górnym rogu konsoli Keycloak. Wszyscy użytkownicy Bob, grupy, dostawcy tożsamości i dostawcy federacji są zarządzani z poziomu tego realm.

Zrozumienie realm Keycloak

Realm to wyizolowana domena zarządzania, która zawiera własnych użytkowników, poświadczenia, role, grupy i dostawców tożsamości.

Bob on-premises używa dwóch realm:

RealmPrzeznaczenie
masterZarezerwowany do celów administracji Keycloak. Użytkownicy w tym realm mogą administrować Keycloak, ale nie mają dostępu do Bob.
bobZawiera wszystkich użytkowników Bob, grupy, dostawców federacji LDAP i klientów aplikacji. Operator Bob tworzy ten realm i nim zarządza.

Te dwa realm są całkowicie niezależne. Członkostwo lub uprawnienia w jednym realm nie dają dostępu do zasobów w drugim.

Uwaga:

Realm bob jest zarządzany przez operatora. Możesz wprowadzać bezpośrednie zmiany za pośrednictwem konsoli Keycloak, ale wsparcie IBM ogranicza się do rozwiązywania problemów wpływających na uwierzytelnianie i dostęp w Bob.

Zarządzanie dostawcami federacji LDAP

Dostawcy federacji LDAP skonfigurowani za pośrednictwem polecenia bobctl configure-idp lub zasobu niestandardowego BobLDAP są widoczni w sekcji User Federation w realm bob.

Operator Bob rejestruje dostawców LDAP podczas ich tworzenia. Kolejne zmiany wprowadzane bezpośrednio w konsoli Keycloak nie są synchronizowane z powrotem do odpowiedniego zasobu niestandardowego BobLDAP.

W celu zapewnienia spójnego zarządzania konfiguracją, jeśli to możliwe, należy używać zasobu niestandardowego BobLDAP i poleceń bobctl configure-idp.

Kwestie bezpieczeństwa

Postępuj zgodnie z poniższymi zaleceniami podczas administrowania Keycloak:

  • Ogranicz dostęp do sekretu bob-keycloak-initial-admin do administratorów klastra.
  • Wykonuj zadania administracyjne Bob w realm bob.
  • Używaj realm master wyłącznie do administrowania infrastrukturą Keycloak.
  • Nie twórz dodatkowych realm ani klientów, chyba że jest to wyraźnie wymagane i obsługiwane.
  • Zarządzaj federacją LDAP za pośrednictwem zasobów BobLDAP zamiast bezpośredniej edycji ustawień dostawcy w konsoli Keycloak.
  • Traktuj początkowe konto administratora jako konto awaryjne lub startowe (bootstrap), a do rutynowej administracji używaj dedykowanych osobistych kont administratorów.

Zarządzanie bezpośrednimi użytkownikami Keycloak

Użytkownicy mogą być tworzeni i zarządzani bezpośrednio w Keycloak bez integrowania katalogu LDAP. To podejście jest odpowiednie dla środowisk typu proof-of-concept, wdrożeń na małą skalę lub instalacji, w których serwer LDAP nie jest dostępny. W środowiskach produkcyjnych, które korzystają już z firmowej usługi katalogowej, zalecanym podejściem jest federacja LDAP.

Dodawanie użytkownika

Aby utworzyć użytkownika lokalnego, otwórz sekcję Users w realm bob i utwórz nowe konto użytkownika. Po zapisaniu użytkownika skonfiguruj hasło i przypisz odpowiednie członkostwo w grupach:

  • Dodaj użytkownika do bob-users, aby przyznać standardowy dostęp.
  • Dodaj użytkownika zarówno do bob-users, jak i bob-admins, aby przyznać dostęp administracyjny.

Zarządzanie hasłami

Hasła dla lokalnie zarządzanych użytkowników są administrowane za pośrednictwem konsoli administracyjnej Keycloak. Otwórz rekord użytkownika i użyj karty Credentials, aby utworzyć, zaktualizować lub zresetować hasło użytkownika.

Usuwanie użytkownika

Aby odebrać dostęp użytkownikowi, otwórz rekord użytkownika w konsoli administracyjnej Keycloak i usuń lub wyłącz konto. Wyłączeni użytkownicy nie mogą się już uwierzytelniać, podczas gdy ich informacje o użytkowniku pozostają dostępne w systemie.

Jak oceniasz ten temat?