Jak skonfigurować Keycloak jako dostawcę tożsamości (IDP) dla ownCloud Infinite Scale
Ten przewodnik łączy ownCloud Infinite Scale (oCIS) z Keycloak za pomocą OpenID Connect (OIDC), warstwy tożsamości zbudowanej na OAuth 2.0. Keycloak uwierzytelnia użytkowników; oCIS ufa podpisanym tożsamościom i informacjom dostępowym udostępnianym przez Keycloak. Logowanie przez przeglądarkę korzysta z przekierowań HTTPS, a oCIS musi również dotrzeć do punktów końcowych Keycloak, służących do wykrywania i podpisywania kluczy.
Stan na 6 października 2026 r. w dokumentacji administracyjnej ownCloud te ustawienia są opisane w systemie Infinite Scale 9.0. Oficjalny przykład wdrożenia Keycloak stanowi przydatny punkt wyjścia, ale jego plik Compose i eksport domeny mogą ulec zmianie. Przypnij kompatybilne wersje obrazów i sprawdź pliki, które wdrażasz, zamiast bezmyślnie kopiować przykład bez kontroli wersji.
Przeglądarka uruchamia się w chmurze ownCloud, przechodzi przez bezpieczny proces logowania do dostawcy tożsamości i kończy działanie po uwierzytelnieniu.
Czego potrzebujesz przed skonfigurowaniem OIDC
Przygotuj publiczny adres HTTPS dla oCIS, taki jak https://cloud.example.com, oraz publiczny adres HTTPS dla Keycloak, taki jak https://sso.example.com. Obie nazwy muszą być poprawnie rozpoznawane przez przeglądarki użytkowników. Serwer oCIS musi również mieć dostęp do metadanych OIDC i publicznych kluczy podpisu Keycloak. Jeśli serwer proxy odwrotnego obsługuje którąkolwiek z usług, skonfiguruj spójnie jego publiczną nazwę hosta i przekazywane nagłówki.
Działające wdrożenie ownCloud Infinite Scale i dostęp administratora do jego środowiska lub konfiguracji Compose.
Działający obszar Keycloak i dostęp administratora. Obszar to przestrzeń nazw Keycloak dla użytkowników, klientów, ról i ustawień tożsamości.
Certyfikat TLS, któremu ufa przeglądarka i serwer, weryfikujący certyfikat TLS Keycloak. Użytkowanie produkcyjne nie powinno wyłączać weryfikacji certyfikatu.
Decyzja dotycząca dopasowania kont: połącz istniejących użytkowników oCIS ze stabilnymi oświadczeniami tożsamości lub włącz obsługę kont przy pierwszym logowaniu z wymaganym zapleczem użytkownika z włączoną możliwością zapisu.
Wydawcą domeny jest adres URL bazowy; aby sprawdzić metadane wykrywania, należy dołączyć parametr /.well-known/openid-configuration.
1. Znajdź dokładnego wystawcę Keycloak
W Keycloak wystawcą OIDC jest zazwyczaj adres URL domeny, a nie adres URL konsoli administracyjnej ani adres URL dokumentu odkrycia. W przypadku domeny o nazwie teammoże to wyglądać tak https://sso.example.com/realms/team: . Starsze instalacje lub wdrożenia z prefiksem ścieżki mogą się różnić, dlatego nie należy konstruować wartości z pamięci. Otwórz dokument odkrycia domeny w https://sso.example.com/realms/team/.well-known/openid-configurationi skopiuj dokładnie wartość jego issuerwłaściwości.
Z serwera, który ma dostęp do Keycloak, możesz sprawdzić dokument za pomocą:
Sprawdź, czy zwrócony wystawca używa tego samego schematu, hosta, ścieżki i nazwy domeny, które skonfigurujesz w oCIS. OpenID Connect dokładnie weryfikuje tożsamość wystawcy; niezgodność nazwy hosta proxy odwrotnego lub dodatkowy ukośnik mogą uniemożliwić logowanie.
Uruchom żądanie odkrycia z hosta, który może dotrzeć do Keycloak i dokładnie porównaj zwróconego wystawcę z OCIS_OIDC_ISSUER.
2. Zarejestruj klienta OIDC dla ownCloud Web
Klient to rejestracja aplikacji, której Keycloak używa do decydowania, która usługa może żądać logowania. Utwórz lub dostosuj klienta OpenID Connect w domenie używanej dla oCIS. Użyj identyfikatora klienta, takiego jak web, lub wartości niestandardowej i upewnij się, że jest ona zgodna z WEB_OIDC_CLIENT_IDwartością w oCIS. Oficjalny przykład ownCloud używa go webjako domyślnego.
W przypadku klienta przeglądarkowego należy użyć standardowego przepływu kodu autoryzacji i konfiguracji klienta publicznego zgodnej z oficjalną przykładową domeną. Wprowadź dokładne wzorce przekierowania HTTPS i przekierowania po wylogowaniu wymagane przez wdrożenie. Wąski wzorzec nazwy hosta, taki jak [brakuje nazwy hosta], https://cloud.example.com/*jest łatwiejszy do zweryfikowania niż szeroki symbol wieloznaczny na każdym hoście. Dodaj tylko źródła internetowe potrzebne wdrożeniu. Nie twórz tajnego klucza klienta dla publicznego klienta przeglądarkowego, a następnie nie osadzaj go w konfiguracji front-endu.
W przypadku ownCloud Web należy dopasować publiczny identyfikator klienta i dozwolony adres URI przekierowania do nazwy hosta ownCloud.
3. Sprawdź roszczenia i zakresy
Deklaracje OIDC to atrybuty tożsamości przenoszone w tokenie lub zwracane przez punkt końcowy user-info. Należy starannie dobrać deklarację nazwy użytkownika. Domyślnie proxy ownCloud rozpoznaje preferred_usernameużytkownika, a przykład Keycloak konfiguruje klienta internetowego ze standardowymi zakresami profilu i adresu e-mail. Sprawdź, czy Twoja domena faktycznie zwraca używane deklaracje; dostępność deklaracji zależy od zakresów klienta i maperów protokołów.
W przypadku istniejących kont skonfigurowane oświadczenie musi być mapowane na odpowiadający mu stabilny atrybut użytkownika ownCloud. Zmiana nazwy użytkownika lub adresu e-mail może spowodować problemy z dopasowaniem konta, jeśli zostanie ono użyte jako stały identyfikator. Oświadczenie subjest gwarantowane jako unikalne i stabilne dla każdego dostawcy tożsamości, ale może nie być zgodne z wcześniej istniejącą nazwą użytkownika. Przetestuj mapowanie konta z kontem bez uprawnień administratora przed udzieleniem dostępu wszystkim użytkownikom.
Sprawdź, czy token identyfikacyjny lub odpowiedź z informacjami o użytkowniku zawiera stabilne żądanie nazwy użytkownika, które ownCloud ma na celu rozwiązanie.
4. Wskaż Infinite Scale na Keycloak
Ustaw następujące wartości w środowisku dla wdrożenia oCIS. Przykład zakłada protokół HTTPS i domenę Keycloak w /realms/team. Użyj własnych adresów URL. Ten blok w stylu YAML ma charakter poglądowy; Docker Compose, Kubernetes, systemd i inne metody wdrażania wyrażają zmienne środowiskowe w różny sposób.
OCIS_OIDC_ISSUERWybiera zewnętrznego dostawcę tożsamości. PROXY_OIDC_REWRITE_WELLKNOWN=truePowoduje, że serwer proxy przepisuje punkt końcowy wykrywania OpenID Connect do skonfigurowanego wystawcy; ownCloud dokumentuje to jako konieczne, aby jego klienci stacjonarni i mobilni mogli wykryć dostawcę. WEB_OIDC_CLIENT_IDMusi być zgodny z klientem Keycloak. Wykluczenie idpjest zgodne z przykładem Keycloak ownCloud, więc wbudowany dostawca nie jest uruchamiany jako aktywny dostawca logowania.
Zachowaj identyfikator wystawcy i klienta w konfiguracji wdrożenia. Przykładowy identyfikator klienta musi być zgodny z zarejestrowanym w Keycloak.
Jeśli chcesz, aby oCIS tworzył konta przy pierwszym pomyślnym logowaniu, ustaw PROXY_AUTOPROVISION_ACCOUNTS=truei skonfiguruj usługę Graph z włączonym zapisem użytkownika. Ustaw PROXY_USER_OIDC_CLAIMi PROXY_AUTOPROVISION_CLAIM_USERNAMEna to samo oświadczenie; dla atrybutu username, dokumenty ownCloud PROXY_USER_CS3_CLAIM=usernamedla tego przepływu. Automatyczne provisionowanie jest opcjonalne i powinno być testowane niezależnie od uwierzytelniania. Nie włączaj tej opcji, chyba że przychodzące oświadczenia są unikalne i mapowane zgodnie z przeznaczeniem.
5. Zezwól dostawcy tożsamości w polityce bezpieczeństwa treści
Infinite Scale korzysta z polityki bezpieczeństwa treści (CSP) do kontrolowania, z którymi zewnętrznymi źródłami może się kontaktować jego klient internetowy. Dokumentacja ownCloud informuje, że zewnętrzny dostawca tożsamości, taki jak Keycloak, wymaga odpowiedniej definicji CSP. Jeśli przycisk logowania pojawia się, ale przeglądarka blokuje żądanie, sprawdź konsolę przeglądarki pod kątem błędów CSP. Skonfiguruj politykę za pośrednictwem PROXY_CSP_CONFIG_FILE_LOCATIONi zezwalaj tylko na źródło Keycloak oraz dyrektywy wymagane przez wdrożenie. Po zmianie pliku uruchom ponownie serwer proxy lub wdrożenie. Nie rozwiązuj problemu z połączeniem, zezwalając na każde źródło.
6. Uruchom ponownie i sprawdź cały przepływ
Zastosuj zmiany środowiskowe i uruchom ponownie wdrożenie oCIS, używając metody, której używasz do zarządzania nim. Nie ma uniwersalnego polecenia restartu: projekt Compose, obciążenie Kubernetes i usługa systemd mają różne ustawienia. Następnie sprawdź każde ogniwo w łańcuchu:
Otwórz adres URL wykrywania Keycloak i sprawdź, czy zwraca on dane JSON za pomocą znaków issuer, authorization_endpoint, token_endpointi jwks_uri.
Otwórz adres URL ownCloud w prywatnym oknie przeglądarki. Sprawdź, czy przeglądarka jest przekierowana do oczekiwanego obszaru Keycloak.
Zaloguj się na konto testowe i sprawdź, czy przeglądarka powraca do tej samej nazwy hosta ownCloud bez pętli przekierowań.
Sprawdź, czy właściwy użytkownik — a nie nowo utworzony duplikat — pojawia się w Infinite Scale i ma dostęp wyłącznie do oczekiwanych zasobów.
Przetestuj wylogowanie, a następnie powtórz z drugim kontem. Jeśli w zasięgu są klienci stacjonarni lub mobilni, przetestuj ich wykrywanie i logowanie osobno.
Dokument informacyjny publikuje wystawcę i punkty końcowe, których ownCloud potrzebuje do ukończenia uwierzytelniania OIDC.Po uwierzytelnieniu użytkownika przez Keycloak przeglądarka powraca do ownCloud, który weryfikuje odpowiedź OIDC przed otwarciem plików.
Typowe awarie i ich znaczenie
Objaw
Pierwsza kontrola
Niezgodność wystawcy lub nieprawidłowy token
Porównaj OCIS_OIDC_ISSUERznak po znaku z wartością dokumentu odkrycia issuer.
Błąd przekierowania URI w Keycloak
Sprawdź, czy prawidłowe przekierowania i adresy URL po wylogowaniu klienta są zgodne z rzeczywistym publicznym adresem URL ownCloud, w tym protokołem HTTPS i ścieżką.
Logowanie działa w przeglądarce, ale nie na komputerze stacjonarnym ani w kliencie mobilnym
Potwierdź PROXY_OIDC_REWRITE_WELLKNOWN=truei sprawdź odpowiedź wykrywania dostarczoną pod adresem URL ownCloud.
Konsola przeglądarki zgłasza zablokowane żądania
Przejrzyj CSP i zezwól na pochodzenie Keycloak za pomocą wymaganych dyrektyw.
Użytkownik loguje się, ale widzi błąd konta lub duplikat
Sprawdź deklarację nazwy użytkownika, jej wartość w tokenie lub odpowiedzi z informacjami o użytkowniku oraz mapowanie na istniejące konto.
Żądania TLS lub wykrywania nie powiodły się z serwera
Sprawdź DNS, routing odwrotnego serwera proxy, zaufanie łańcucha certyfikatów i czy host oCIS może dotrzeć do Keycloak.
Lista kontrolna produkcji
Przypięto wersje ownCloud i Keycloak zamiast polegać na latestznaczniku zmiennym.
Użyj protokołu HTTPS zarówno do usług publicznych, jak i zachowaj weryfikację certyfikatu. ownCloud dokumentuje niebezpieczne obejście protokołu TLS jako nieodpowiednie do zastosowań produkcyjnych.
Chroń dane uwierzytelniające administratora Keycloak, utwórz kopię zapasową bazy danych Keycloak i konfiguracji domeny oraz ogranicz dostęp administratora Keycloak.
Ogranicz adresy URI przekierowań i źródła stron internetowych do rzeczywistych nazw hostów ownCloud.
Udokumentuj wybrane roszczenie dotyczące identyfikatora i konsekwencje zmiany nazw użytkowników, nazw domen, adresów URL wystawców lub identyfikatorów klientów.
Przed przełączeniem instancji produkcyjnej przetestuj dostęp do odzyskiwania i zachowaj zaplanowane wycofanie poprzedniej konfiguracji.