← Усі шаблони · Паролі та вхід
Задеплойте Keycloak в один клік
Керування ідентифікацією та доступом із відкритим кодом: єдиний вхід для ваших застосунків з OpenID Connect і SAML
Альтернатива Auth0 і Okta на вашій машині.
Що таке Keycloak?
Keycloak — сервер керування ідентифікацією та доступом: ваші застосунки доручають йому вхід, і людина, яка увійшла один раз, уже увійшла в усі. Він підтримує OpenID Connect, OAuth 2.0 і SAML 2.0, тож більшість застосунків і фреймворків підключаються до нього своїми стандартними бібліотеками. Він впускає людей за паролем, ключем доступу або соціальним акаунтом, як-от Google чи GitHub, додає двофакторну автентифікацію з одноразовими кодами, синхронізує користувачів з LDAP і Active Directory, а кожен користувач керує своїм профілем, паролем і сесіями в консолі акаунта.
Keycloak — інкубаційний проєкт Cloud Native Computing Foundation, яким і компанії, і домашні лабораторії користуються, щоб поставити один вхід перед багатьма застосунками. Цей шаблон запускає його в режимі продакшну з PostgreSQL за проксі й створює адміністратора realm master з полів ще до того, як Keycloak комусь відповість. Підводний камінь: Keycloak потужний і має багато налаштувань, тож щоб налаштувати першого клієнта, доведеться трохи почитати, а працює він на Java, яка займає більше пам’яті, ніж більшість серверів входу.
Хостинг Keycloak на Pethost
- Ви входите в Pethost — з ключем доступу, через GitHub або Google. Машини ще немає? Ви обираєте тариф, і посилання чекає, доки машина не буде готова.
- Вікно «Новий проєкт» відкривається на застосунку Keycloak. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: Ім’я користувача, Пароль адміністратора.
- За хвилину-дві Keycloak працює за власною адресою з HTTPS. Секрети створюються випадково, а дані потрапляють у щонічний бекап.
- Це проєкт як будь-який інший: ви або ваш агент можете його змінити, відкотити або відновити.
Питання про Keycloak
Keycloak безкоштовний?
Так. Keycloak має відкритий код за ліцензією Apache 2.0, без платної редакції й без обмежень на кількість користувачів чи застосунків. Red Hat продає підтримку своєї збірки — Red Hat build of Keycloak.
Keycloak чи Auth0: що обрати?
Обидва впускають користувачів через OpenID Connect і SAML, із входом через соцмережі та двофакторною автентифікацією. Auth0 — хмарний сервіс із ціною за кількістю активних користувачів на місяць, а Keycloak ви запускаєте самі, безкоштовно для будь-якої кількості користувачів, але й доглядати за ним доведеться вам.
Чи може Keycloak впускати користувачів через Google або GitHub?
Так. Розділ «Identity providers» у realm додає Google, GitHub, Facebook, Microsoft та інших або будь-якого провайдера OpenID Connect чи SAML 2.0 кнопками на сторінці входу, без змін у ваших застосунках.
Чи підтримує Keycloak двофакторну автентифікацію та ключі доступу?
Так. Він приймає одноразові коди із застосунків на кшталт Google Authenticator чи FreeOTP, коди відновлення та ключі доступу, а realm може вимагати їх від усіх або дозволити користувачам увімкнути їх у консолі акаунта.
Чому Keycloak каже, що я тимчасовий адміністратор?
Keycloak позначає адміністратора, якого створює під час першого запуску, як тимчасового й просить створити постійного: додайте користувача в realm master, дайте йому роль admin на вкладці «Role mapping», увійдіть під ним і видаліть тимчасового адміністратора.
Скільки пам’яті й диска потрібно Keycloak?
Keycloak працює на Java: у спокої близько 550 MB пам’яті разом із Postgres, більше — з багатьма користувачами й сесіями; база даних лишається невеликою. На Pethost йому вистачить тарифу Starter, і поруч залишиться місце для інших застосунків.
Keycloak: файл Docker Compose
Шаблон — це цей compose.yaml і змінні, які записуються в .env проєкту під час його створення. Pethost запускає файл так, як його написано.
Контейнери: keycloak (quay.io/keycloak/keycloak:26.8), postgres (postgres:18-alpine).
Томи, у щонічному бекапі: 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:
Ще в категорії «Паролі та вхід»
- VaultwardenСервер менеджера паролів для застосунків Bitwarden
- AuthorizerВхід у ваші власні застосунки, з OAuth 2 та OpenID Connect
- Password PusherПаролі й секрети за посиланнями, що спливають
- authentikПровайдер ідентифікації для єдиного входу у ваші застосунки: OpenID Connect, SAML, LDAP, MFA і ключі доступу
- FusionAuthКерування ідентифікацією та доступом клієнтів: вхід, реєстрація, єдиний вхід і MFA для ваших застосунків