← Wszystkie szablony · Hasła i logowanie
Wdróż Keycloak jednym kliknięciem
Zarządzanie tożsamością i dostępem open source: logowanie jednokrotne do twoich aplikacji przez OpenID Connect i SAML
Alternatywa dla Auth0 i Okta, hostowana u siebie.
Czym jest Keycloak?
Keycloak to serwer zarządzania tożsamością i dostępem: twoje aplikacje przekazują mu logowanie, a kto zalogował się raz, jest zalogowany we wszystkich. Obsługuje OpenID Connect, OAuth 2.0 i SAML 2.0, więc większość aplikacji i frameworków łączy się z nim swoimi standardowymi bibliotekami. Loguje ludzi hasłem, kluczem dostępu albo kontem społecznościowym, takim jak Google czy GitHub, dodaje uwierzytelnianie dwuskładnikowe z kodami jednorazowymi, synchronizuje użytkowników z LDAP i Active Directory, a każdemu użytkownikowi pozwala zarządzać profilem, hasłem i sesjami w konsoli konta.
Keycloak to projekt w fazie inkubacji w Cloud Native Computing Foundation, używany zarówno w firmach, jak i w homelabach, żeby postawić jedno logowanie przed wieloma aplikacjami. Ten szablon uruchamia go w trybie produkcyjnym z PostgreSQL za proxy i tworzy administratora obszaru master z pól formularza, zanim Keycloak komukolwiek odpowie. Haczyk: Keycloak ma duże możliwości i wiele ustawień, więc pierwszy klient wymaga trochę czytania, a działa na Javie, która zajmuje więcej pamięci niż większość serwerów logowania.
Hosting Keycloak na Pethost
- Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
- Okno „Nowy projekt” otwiera się na aplikacji Keycloak. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: Nazwa użytkownika, Hasło administratora.
- Za minutę czy dwie aplikacja Keycloak działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
- To projekt jak każdy inny: ty albo twój agent możecie go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.
Pytania o Keycloak
Czy Keycloak jest darmowy?
Tak. Keycloak to open source na licencji Apache 2.0, bez płatnej edycji i bez limitu użytkowników ani aplikacji. Red Hat sprzedaje wsparcie dla własnej wersji, Red Hat build of Keycloak.
Keycloak czy Auth0: co wybrać?
Oba logują użytkowników przez OpenID Connect i SAML, z logowaniem kontami społecznościowymi i uwierzytelnianiem dwuskładnikowym. Auth0 to usługa w chmurze wyceniana według liczby aktywnych użytkowników miesięcznie, a Keycloaka uruchamiasz u siebie, za darmo dla dowolnej liczby użytkowników, kosztem tego, że musisz o niego dbać.
Czy Keycloak może logować użytkowników przez Google albo GitHub?
Tak. Sekcja Identyfikatory dostawców tożsamości w obszarze dodaje Google, GitHub, Facebook, Microsoft i innych albo dowolnego dostawcę OpenID Connect lub SAML 2.0 jako przyciski na stronie logowania, bez zmian w twoich aplikacjach.
Czy Keycloak obsługuje uwierzytelnianie dwuskładnikowe i klucze dostępu?
Tak. Przyjmuje kody jednorazowe z aplikacji takich jak Google Authenticator czy FreeOTP, kody odzyskiwania i klucze dostępu, a obszar może wymagać ich od wszystkich albo pozwolić użytkownikom włączyć je w konsoli konta.
Dlaczego Keycloak pokazuje, że konto administratora jest tymczasowe?
Keycloak oznacza administratora, którego tworzy przy pierwszym uruchomieniu, jako tymczasowego i prosi o stałego: dodaj użytkownika w obszarze master, nadaj mu rolę admin w zakładce Mapowanie roli, zaloguj się na to konto i usuń tymczasowego administratora.
Ile pamięci i miejsca na dysku potrzebuje Keycloak?
Keycloak działa na Javie: w spoczynku zajmuje razem z Postgresem około 550 MB pamięci, więcej przy wielu użytkownikach i sesjach; jego baza danych pozostaje mała. Na Pethost wystarczy mu plan Starter, z miejscem na inne aplikacje obok.
Keycloak: plik Docker Compose
Szablon to ten compose.yaml i zmienne zapisywane do .env projektu przy jego tworzeniu. Pethost uruchamia plik dokładnie tak, jak jest napisany.
Kontenery: keycloak (quay.io/keycloak/keycloak:26.8), postgres (postgres:18-alpine).
Wolumeny, w nocnym backupie: db.
services:
keycloak:
image: quay.io/keycloak/keycloak:26.8
restart: unless-stopped
command: start
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
KC_HOSTNAME: ${URL}
# The proxy serves HTTPS and passes requests on over HTTP, saying in X-Forwarded-* who sent
# them and how.
KC_HTTP_ENABLED: "true"
KC_PROXY_HEADERS: xforwarded
KC_HEALTH_ENABLED: "true"
# The administrator of the master realm is made from these at the first start, before
# Keycloak answers anyone; Keycloak calls it temporary until a permanent one replaces it.
KC_BOOTSTRAP_ADMIN_USERNAME: ${ADMIN_USERNAME}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
depends_on:
postgres:
condition: service_healthy
# The port listens before Keycloak is ready: the deploy waits for its readiness, which its
# management port answers. The image has no curl: bash asks it.
healthcheck:
test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9000 && printf 'GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n' >&3 && grep -q '\"UP\"' <&3"]
interval: 5s
timeout: 5s
retries: 5
start_period: 180s
postgres:
image: postgres:18-alpine
restart: unless-stopped
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- db:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U keycloak -d keycloak"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
volumes:
db:
Więcej w kategorii Hasła i logowanie
- VaultwardenSerwer menedżera haseł dla aplikacji Bitwarden
- AuthorizerLogowanie do twoich własnych aplikacji, z OAuth 2 i OpenID Connect
- Password PusherUdostępniaj hasła i sekrety przez linki, które wygasają
- authentikDostawca tożsamości do logowania jednokrotnego w twoich aplikacjach: OpenID Connect, SAML, LDAP, MFA i klucze dostępu
- FusionAuthZarządzanie tożsamością i dostępem klientów: logowanie, rejestracja, logowanie jednokrotne i MFA dla twoich aplikacji