перевод статьи: https://cloudinfrastructureservices.co.uk/install-keycloak-sso-on-ubuntu-20-04/
Keycloak – это бесплатное решение для управления идентификацией и доступом с открытым исходным кодом от сообщества RedHat. Его цель – защитить современные приложения и службы без написания какого-либо кода. Он предоставляет широкий спектр функций, включая многофакторную аутентификацию, единый вход, централизованное управление пользователями, аутентификацию, авторизацию, вход в систему в социальных сетях и многое другое. Keycloakпозволяет добавлять аутентификацию в приложения и защищенные службы с минимальными затратами. Вам не нужно иметь дело с сохранением пользователей или аутентификацией пользователей.
Keycloak обеспечивает единый выход, что означает, что пользователям нужно только один раз выйти из системы, чтобы выйти из всех приложений, использующих Keycloak. Keycloak – это посредник идентификации, поскольку он аутентифицирует пользователей с помощью существующих поставщиков удостоверений OpenID Connect или SAML 2.0. Другой важной особенностью является то, что Keycloak имеет встроенную поддержку для подключения к существующим серверам LDAP или Active Directory.
Далее мы перейдем к шагам по установке KeyCloak SSO в Ubuntu 20.04.
Также прочитайте
Что такое единый вход и как работает единый вход?
Как установить KeyCloak SSO на Ubuntu 20.04
Начало работы с сервером KeyCloak
Перед запуском всегда рекомендуется обновить системные пакеты до обновленной версии. Выполните следующую команду, чтобы обновить все пакеты до последней версии:
apt-get update -y
apt-get upgrade -y
Копировать
После обновления вашей системы перезапустите ее, чтобы применить все обновления.
Установите Java JDK
Keycloak – это приложение на основе Java. Итак, Java JDK должен быть установлен на вашем сервере. Если он не установлен, вы можете установить его с помощью следующей команды:
apt-get install default-jdk -y
Копировать
После установки Java вы можете проверить версию Java с помощью следующей команды:
java --version
Копировать
Вы должны увидеть версию Java в следующем выводе:
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
Копировать
Как только вы закончите, вы можете перейти к следующему шагу.
Также прочитайте
Keycloak WordPress SSO – Как настроить единый вход Keycloak для WordPress
Скачать Keycloak
Далее вам нужно будет загрузить последнюю версию Keycloak с веб-сайта GitHub. Вы можете использовать команду wget, чтобы загрузить ее в свою систему.
wget https://github.com/keycloak/keycloak/releases/download/15.0.2/keycloak-15.0.2.tar.gz
Копировать
Пример вывода:
HTTP request sent, awaiting response... 200 OK
Length: 253994058 (242M) [application/octet-stream]
Saving to: ‘keycloak-15.0.2.tar.gz’
keycloak-15.0.2.tar.gz 4%[=> ] 10.81M 54.0MB/s
keycloak-15.0.2.tar.gz 100%[=================================================================>] 242.23M 42.2MB/s in 5.2s
2021-11-16 09:23:43 (46.4 MB/s) - ‘keycloak-15.0.2.tar.gz’ saved [253994058/253994058]
Копировать
После завершения загрузки извлеките загруженный файл с помощью следующей команды:
tar -xvzf keycloak-15.0.2.tar.gz
Копировать
Затем переместите извлеченный каталог в /opt с помощью следующей команды:
mv keycloak-15.0.2 /opt/keycloak
Копировать
Затем создайте выделенного пользователя и группу для Keycloak с помощью следующей команды:
groupadd keycloak
useradd -r -g keycloak -d /opt/keycloak -s /sbin/nologin keycloak
Копировать
Затем установите для владельца каталога /opt/keycloak значение keycloak:
chown -R keycloak: /opt/keycloak
chmod o+x /opt/keycloak/bin/
Копировать
Как только вы закончите, вы можете перейти к следующему шагу.
Также прочитайте
Топ–10 лучших альтернатив Keycloak – Единый вход с открытым исходным кодом (плюсы и минусы)
Настройка Keycloak
Далее вам нужно будет создать каталог конфигурации Keycloak и скопировать пример файла конфигурации. Вы можете создать его внутри каталога /etc:
mkdir /etc/keycloak
Копировать
Затем скопируйте файлы конфигурации примеров из каталога /opt/keycloak, используя следующую команду:
cp /opt/keycloak/docs/contrib/scripts/systemd/wildfly.conf /etc/keycloak/keycloak.conf
cp /opt/keycloak/docs/contrib/scripts/systemd/launch.sh /opt/keycloak/bin/
Копировать
Затем установите правильное владение, используя следующую команду:
chown keycloak: /opt/keycloak/bin/launch.sh
Копировать
Затем отредактируйте launch.sh файл и определите свой путь к ключу:
nano /opt/keycloak/bin/launch.sh
Копировать
Измените файл, как показано ниже:
#!/bin/bash
if [ "x$WILDFLY_HOME" = "x" ]; then
WILDFLY_HOME="/opt/keycloak"
fi
if [[ "$1" == "domain" ]]; then
$WILDFLY_HOME/bin/domain.sh -c $2 -b $3
else
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3
fi
Копировать
Сохраните и закройте файл, когда закончите.
Создайте файл Systemd Service для Keycloak
Далее вам нужно будет создать файл службы systemd для управления службой Keycloak. Вы можете скопировать пример службы systemd с помощью следующей команды:
cp /opt/keycloak/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/keycloak.service
Копировать
Затем отредактируйте файл keycloak.service и определите путь установки Keycloak:
nano /etc/systemd/system/keycloak.service
Копировать
Измените файл, как показано ниже:
[Unit]
Description=The Keycloak Server
After=syslog.target network.target
Before=httpd.service
[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=/etc/keycloak/keycloak.conf
User=keycloak
Group=keycloak
LimitNOFILE=102642
PIDFile=/var/run/keycloak/keycloak.pid
ExecStart=/opt/keycloak/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND
StandardOutput=null
[Install]
WantedBy=multi-user.target
Копировать
Сохраните и закройте файл, затем перезагрузите демон systemd, чтобы применить изменения:
systemctl daemon-reload
Копировать
Затем запустите службу Keycloak и включите ее для запуска при перезагрузке системы:
systemctl start keycloak
systemctl enable keycloak
Копировать
Вы можете проверить состояние службы поиска ключей с помощью следующей команды:
systemctl status keycloak
Копировать
Вы получите следующий результат:
● keycloak.service - The Keycloak Server
Loaded: loaded (/etc/systemd/system/keycloak.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2021-11-16 09:30:06 UTC; 4s ago
Main PID: 4711 (launch.sh)
Tasks: 25 (limit: 4691)
Memory: 108.6M
CGroup: /system.slice/keycloak.service
├─4711 /bin/bash /opt/keycloak/bin/launch.sh standalone standalone.xml 0.0.0.0
├─4712 /bin/sh /opt/keycloak/bin/standalone.sh -c standalone.xml -b 0.0.0.0
└─4819 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=t>
Nov 16 09:30:06 ubuntu systemd[1]: Started The Keycloak Server.
Копировать
На этом этапе запускается сервер перехвата ключей, который прослушивает порт 8080. Вы можете проверить это с помощью следующей команды:
ss -antpl | grep 8080
Копировать
Вы получите следующий результат:
LISTEN 0 4096 0.0.0.0:8080 0.0.0.0:* users:(("java",pid=4819,fd=421))
Копировать
Вы также можете проверить журнал сервера Keycloak с помощью следующей команды:
tail -f /opt/keycloak/standalone/log/server.log
Копировать
Вы получите следующий результат:
2021-11-16 09:30:35,612 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 66) RESTEASY002220: Adding singleton resource org.keycloak.services.resources.WelcomeResource from Application class org.keycloak.services.resources.KeycloakApplication
2021-11-16 09:30:35,680 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 66) WFLYUT0021: Registered web context: '/auth' for server 'default-server'
2021-11-16 09:30:35,780 INFO [org.jboss.as.server] (ServerService Thread Pool -- 43) WFLYSRV0010: Deployed "keycloak-server.war" (runtime-name : "keycloak-server.war")
2021-11-16 09:30:35,836 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
2021-11-16 09:30:35,839 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: Keycloak 15.0.2 (WildFly Core 15.0.1.Final) started in 28538ms - Started 594 of 872 services (584 services are lazy, passive or on-demand)
2021-11-16 09:30:35,840 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
2021-11-16 09:30:35,841 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
Копировать
Также прочитайте
Топ-10 решений для единого входа с открытым исходным кодом (плюсы и минусы)
Создайте пользователя-администратора для Keycloak
Далее вам нужно будет создать пользователя-администратора для доступа к веб-интерфейсу Keycloak. Выполните следующую команду, чтобы создать пользователя-администратора:
/opt/keycloak/bin/add-user-keycloak.sh -u admin
Копировать
Установите свой пароль, как показано ниже:
Press ctrl-d (Unix) or ctrl-z (Windows) to exit
Password:
Added 'admin' to 'https://net.cloudinfrastructureservices.co.uk/opt/keycloak/standalone/configuration/keycloak-add-user.json', restart server to load user
Копировать
Затем перезапустите службу Keycloak, чтобы применить изменения:
systemctl restart keycloak
Копировать
Далее вам нужно будет отключить HTTPS для Keycloak. Вы можете отключить его с помощью следующей команды:
/opt/keycloak/bin/kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin
Копировать
Вам будет предложено ввести пароль администратора, как показано ниже:
Logging into http://localhost:8080/auth as user admin of realm master
Enter password: ********
Копировать
Затем выполните следующую команду, чтобы отключить HTTPS:
/opt/keycloak/bin/kcadm.sh update realms/master -s sslRequired=NONE
Копировать
Доступ к веб-интерфейсу Keycloak
Теперь откройте свой веб-браузер и получите доступ к веб-интерфейсу Keycloak, используя URL http://your-server-ip:8080/auth/admin . Вы должны увидеть страницу входа в систему Keycloak:
Укажите свое имя пользователя, пароль администратора и нажмите на кнопку входа. Вы должны увидеть панель управления Keycloak на следующем экране:
Далее вам нужно будет создать область для управления вашими приложениями. Наведите указатель мыши на Мастер на левой панели и нажмите на Добавитьобласть. Область управляет набором пользователей, учетных данных, ролей и групп. Пользователь принадлежит к области и входит в нее.
Вы должны увидеть следующий экран:
Укажите имя вашей области и нажмите на кнопку Создать, чтобы создать область. Вы должны увидеть следующий экран:
Далее вам нужно будет создать нового пользователя для Keycloak. Нажмите на Управление => Пользователи. Вы должны увидеть следующий экран:
Далее нажмите на кнопку Добавить пользователя. Вы должны увидеть следующий экран:
Укажите свои пользовательские данные и нажмите на кнопку Сохранить. Затем перейдите на вкладку Учетные данные и установите пароль для пользователей, как показано ниже:
Нажмите на Установить пароль, чтобы установить пароль.
Также прочитайте
Auth0 vs Okta – в чем разница (сравните платформы единого входа)
How to setup Sign in with Google using Keycloak
Server Installation and Configuration Guide
Свежие комментарии