0

sos

KeyCloak SSO

24.01.2023

перевод статьи: 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 – в чем разница (сравните платформы единого входа)

Keycloak Cluster Setup

How to setup Sign in with Google using Keycloak

Server Installation and Configuration Guide

Booting in standalone mode

Keycloak. Описание настроек Realm’а

Установка Keycloak и PostgeSQL в Linux

Свежие комментарии

Подписка

Лучшие статьи

Рубрики

Популярное

Nginx
Previous Story

NGINX: Перехват ошибок 5хх с помощью отладочного сервера

Keycloak
Next Story

Установка Keycloak и PostgeSQL в Linux

Latest from Blog

How to Install Proxmox Virtual Environment on Debian 11

Introduction Proxmox Virtual Environment is an open-source virtualization management program. It provides a single platform to manage services and functions like KVM Hypervisor, Linux Containers (LXC), storage & networking. In addition, it

Настройка Wireguard VPN на своем сервере

Настройка серверной части После успешного подключения я напишу несколько команд и описание того что они производят для понимания процесса: Обновляем список пакетов в репозиториях apt update Обновим сами пакеты apt upgrade -y

Установка Zabbix 7 c NGINX + PostgreSQL + TimescaleDB на Ubuntu Server или Debian

Сервер Zabbix предполагает достаточную вариативность в выборе СУБД и веб-сервера, поэтому многое тут будет зависеть от персональных предпочтений. Однако расширение TimescaleDB позволяет поддерживать высокий уровень производительности и масштабирования при работе с временными

Настройка простого беспроводного репитера на устройстве MikroTik

При развертывании беспроводных сетей достаточно часто возникают ситуации, когда в некоторых местах квартиры или офиса мощность Wi-Fi сигнала недостаточна для уверенной работы. Конечно, наиболее действенным решением является создание централизованно управляемой сети и

Настройка и использование Redis

В этой статье мы расскажем что такое Redis, его преимущества и для каких целей он используется. Redis (REmote DIctionary Server) — сетевое журналируемое хранилище данных типа “ключ” — “значение” с открытым исходным кодом. По сути Redis представляет собой базу данных
Go toTop