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ęcie | Opis |
|---|---|
| Dostawca tożsamości | Keycloak — wdrażany i zarządzany przez operatora Bob. |
| Źródła użytkowników | Użytkownicy mogą być tworzeni bezpośrednio w Keycloak lub federowani z usługi LDAP lub Active Directory. |
| Uwierzytelnianie | Uż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. |
| Autoryzacja | Dostęp do funkcji Bob jest kontrolowany przez role przypisane użytkownikom w ramach Keycloak. |
| Powierzchnia konfiguracji | Integracja 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ść vendor | Typ katalogu |
|---|---|
other | OpenLDAP i inne generyczne usługi katalogowe zgodne z LDAPv3 |
ad | Microsoft Active Directory |
rhds | Red Hat Directory Server |
tivoli | IBM Security Directory Server (wcześniej Tivoli Directory Server) |
edirectory | NetIQ / 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
- Użytkownik wprowadza dane uwierzytelniające.
- Keycloak uwierzytelnia użytkownika.
- Keycloak wystawia krótkotrwały kod autoryzacyjny.
bob-authnwymienia kod autoryzacyjny na token nośnika (bearer) Bob.- 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:
| Tryb | userSync.enabled | Zachowanie |
|---|---|---|
| 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) | true | Po 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:
- Użytkownik jest importowany do Keycloak.
- Użytkownik jest aprowizowany w Bob przez SCIM.
- Pierwsza próba logowania nie powiedzie się z powodu opóźnienia aprowizacji.
- 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.
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żytkownika | Działanie Bob |
|---|---|
| Utworzenie użytkownika lub pierwsze logowanie | Aprowizuje użytkownika i przyznaje dostęp do Bob |
| Aktualizacja użytkownika | Synchronizuje zmiany w profilu |
| Usunięcie użytkownika z LDAP | Odbiera dostęp do Bob, zachowując jednocześnie dane użytkownika |
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 Keycloak | Przyznana rola Keycloak | Kto jest dodawany |
|---|---|---|
bob-users | bob-user | Wszyscy uwierzytelnieni użytkownicy są automatycznie dodawani przy pierwszym udanym logowaniu za pośrednictwem domyślnej grupy realm. |
bob-admins | bob-admin | Uż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:
- Dodaj adres e-mail użytkownika do
adminEmailsw pliku konfiguracyjnym IDP. - Zastosuj zmianę:
./bobctl configure-idp --config my-idp.yaml
Aby odebrać uprawnienia administratora:
- Usuń adres e-mail z
adminEmails. - Ponownie zastosuj konfigurację.
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
| Interfejs | Adres URL | Przeznaczenie |
|---|---|---|
| Konsola administracyjna Keycloak | https://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>/admin | Zarządzanie użytkownikami Bob, rolami, zaproszeniami i ustawieniami specyficznymi dla dzierżawy (tenant). |
Operator Bob automatycznie tworzy obie trasy podczas instalacji.
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 keycloakPobierz 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 && echooc get secret bob-keycloak-initial-admin \
-n <instance-namespace> \
-o jsonpath='{.data.password}' | base64 -d && echoNie 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:
| Realm | Przeznaczenie |
|---|---|
| master | Zarezerwowany do celów administracji Keycloak. Użytkownicy w tym realm mogą administrować Keycloak, ale nie mają dostępu do Bob. |
| bob | Zawiera 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.
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-admindo administratorów klastra. - Wykonuj zadania administracyjne Bob w realm
bob. - Używaj realm
masterwyłą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
BobLDAPzamiast 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.