Установка Keycloak с Docker Compose
Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как установить Keycloak с Docker Compose.
Keycloak - это программный продукт с открытым исходным кодом, позволяющий осуществлять единый вход с помощью управления идентификацией и доступом, предназначенный для современных приложений и сервисов.
В этом руководстве мы будем рассматривать тот случай, когда у вас уже есть сервер с установленной на нем операционной системой Ubuntu Server 20.04 LTS.
Подробно о том, как установить Ubuntu Server 20.04 LTS, вы можете прочитать в моем руководстве “Установка Ubuntu Server 20.04 LTS”.
Также на сервере должен быть установлен Docker Engine и Docker Compose.
Узнать о том, как установить Docker Engine на Ubuntu Server, вы можете, прочитав “Установка Docker Engine и Docker Compose на Ubuntu Server”.
Кроме того, на сервер должен быть установлен OpenSSH, а также открыт 22 порт, чтобы иметь возможность подключаться к серверу по протоколу SSH.
Для установки OpenSSH на сервер вы можете воспользоваться командой:
sudo apt install openssh-server
Если вы планируете подключиться к серверу, используя операционную систему Windows, то можете воспользоваться PuTTY или MobaXterm.
В данном руководстве рассматривается подключение к серверу при помощи терминального эмулятора iTerm2, установленного на операционную систему macOS.
Обратите внимание, вам потребуется открыть следующие порты TCP для доступа к вашему серверу:
- TCP порт 80 - для получения бесплатного криптографического сертификата через центр сертификации Let’s Encrypt.
- TCP порт 443 - для доступа к веб-интерфейсу Keycloak.
Подключаемся к серверу, на который планируется установить Keycloak.
Теперь нужно создать конфигурационный файл YAML, который будет содержать все необходимые условия для работы Keycloak.
Создадим конфигурационный файл YAML, воспользовавшись текстовым редактором, с помощью команды:
vim keycloak-traefik-letsencrypt-docker-compose.yml
Нажимаем на кнопку “i”, чтобы перейти в режим редактирования, затем вставляем следующую конфигурацию для работы Keycloak.
Далее вам необходимо внести изменения в конфигурацию, чтобы содержимое файла соответствовало вашим условиям. Параметры, которые требуется проверить или в которые нужно внести изменения имеют пометку “(replace with yours)”.
В данном руководстве для доступа к Keycloak из сети Интернет будет использоваться субдомен keycloak.heyvaldemar.net. Вам нужно будет указать ваш домен или субдомен, по которому ваш Keycloak будет доступен из сети Интернет.
Обратите внимание, в данном руководстве в качестве системы для управления базами данных будет использоваться PostgreSQL, а в качестве reverse proxy - Traefik.
В параметре “traefik.http.middlewares.authtraefik.basicauth.users” необходимо указать имя пользователя и хэш пароля для доступа к панели управления Traefik.
Обратите внимание, для получения хэша пароля можно воспользоваться данным сервисом.
Теперь нажмите на кнопку “Esc”, чтобы выйти из режима редактирования, а затем введите “:x” и нажмите на кнопку “Enter”, чтобы сохранить изменения и выйти из редактора.
Теперь запустим Keycloak с помощью команды:
docker compose -f keycloak-traefik-letsencrypt-docker-compose.yml -p keycloak up -d
С рабочей станции переходим по ссылке https://keycloak.heyvaldemar.net, где keycloak.heyvaldemar.net - имя моего субдомена для доступа к панели управления Keycloak. Вам нужно будет указать ваш домен или субдомен, по которому ваша панель управления Keycloak будет доступна из сети Интернет.
Нажимаем на кнопку “Administration Console”.
Указываем логин, который вы указали ранее в конфигурационном файле YAML, в переменной “KEYCLOAK_USER”.
Далее указываем пароль, который вы указали ранее в конфигурационном файле YAML, в переменной “KEYCLOAK_PASSWORD”.
Нажимаем на кнопку “Sign In”.
Добро пожаловать в панель управления Keycloak.
Для доступа к панели управления Traefik необходимо с рабочей станции перейти по ссылке https://traefik.keycloak.heyvaldemar.net, где traefik.keycloak.heyvaldemar.net — имя моего сервера. Соответственно, вам необходимо указать имя вашего сервера с установленным Traefik.
Указываем имя пользователя и пароль, заданный ранее в конфигурационном файле YAML, и нажимаем на кнопку “OK”.
Добро пожаловать в панель управления Traefik.