Коротко про Keycloak

Салимжанов Р.Д.

Введение

Keycloak — это решение для управления идентификацией и доступом с открытым исходным кодом. Оно позволяет разработчикам легко добавлять аутентификацию и авторизацию в свои приложения. Keycloak поддерживает различные протоколы, такие как OAuth 2.0, OpenID Connect и SAML, что делает его универсальным инструментом для обеспечения безопасности приложений. Он предоставляет функции, такие как единый вход (SSO), управление пользователями, аутентификация и многое другое.

Установка Keycloak

Для начала необходимо скачать последнюю версию Keycloak с официального сайта.

Коротко про Keycloak

Выберите версию, соответствующую вашей операционной системе.

Коротко про Keycloak

Запуск Keycloak

Существует множество вариантов запуска Keycloak, но в этой статье я разберу два наиболее популярных способа: запуск через консоль и запуск с использованием Docker. Оба метода имеют свои преимущества и позволяют быстро развернуть сервер Keycloak для разработки и тестирования.

1.Запуск Keycloak через консоль

Этот способ подходит для тех, кто предпочитает работать с локальной средой и не хочет зависеть от контейнеризации. Для запуска Keycloak через консоль выполните следующие шаги:

  • Скачайте и распакуйте последнюю версию Keycloak с официального сайта, в любую директорию. Но лучше всего чтобы путь содержал только латинские символы.
  • Откройте терминал и перейдите в директорию, куда вы распаковали Keycloak.

  • Выполните команду: bin\kc.bat start-dev

Коротко про Keycloak
  • После успешного запуска сервера, вы сможете получить доступ к админ-панели по адресу http://localhost:8080. В первый раз вам будет предложено создать временную учетную запись администратора, которая позволит вам управлять Realm, пользователями и клиентами.

2. Запуск Keycloak через Docker

Использование Docker для запуска Keycloak — это удобный и быстрый способ, который позволяет избежать проблем с зависимостями и конфигурацией окружения. Для запуска Keycloak в Docker выполните следующие шаги:

  • Убедитесь, что у вас установлен Docker. Если он не установлен, вы можете скачать его с официального сайта https://www.docker.com/get-started/
  • Создайте Docker Compose файл. Создайте файл с именем docker-compose.yml в удобной для вас директории и добавьте в него следующую конфигурацию для Keycloak:

Коротко про Keycloak
services: postgres: image: postgres:15 container_name: postgres environment: POSTGRES_DB: keycloaks POSTGRES_USER: keycloaks POSTGRES_PASSWORD: keycloaks volumes: - postgres_data:/var/lib/postgresql/data networks: - keycloak-network keycloak: image: quay.io/keycloak/keycloak:21.1.1 container_name: keycloak environment: DB_VENDOR: postgres DB_ADDR: postgres DB_DATABASE: keycloaks DB_USER: keycloaks DB_PASSWORD: keycloaks KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: admin command: start-dev --http-port=8080 ports: - 8080:8080 depends_on: - postgres networks: - keycloak-network networks: keycloak-network: driver: bridge volumes: postgres_data: driver: local

В этом файле мы определяем сервис keycloak, указываем образ, который будем использовать, настраиваем переменные окружения для создания учетной записи администратора и открываем порт 8080 для доступа к Keycloak. А также вместо базы данных H2, используем PostgreSQL в качестве базы данных для Keycloak.

  • Далее удалим контейнеры, сети, образы и данные, чтобы очистить окружение, выполните следующую команду:

docker-compose down -v --rmi all

docker system prune -a --volumes

Эти команды удалят все контейнеры, сети и образы, связанные с вашим проектом, а также очистят неиспользуемые данные в Docker.

После того как готов файл docker-compose.yml, выполните команду:

docker-compose up

Эта команда запустит контейнеры, определенные в вашем Docker Compose файле. Убедитесь, что все сервисы запускаются без ошибок. В логах контейнера Keycloak вы должны увидеть запись:

Listening on: http://0.0.0.0:8080

Это означает, что Keycloak успешно запущен и доступен по адресу http://localhost:8080.

Теперь вы можете перейти в админ-панель Keycloak, используя учетные данные, которые вы указали (логин: admin, пароль: admin), и начать настройку вашего сервера аутентификации.

Если при попытке входа в админ-панель Keycloak по адресу http://localhost:8080 вы видите сообщение "Local access required", это может означать, что Keycloak не был правильно настроен для доступа извне.

Коротко про Keycloak

В таком случае, если доступ невозможен, вы можете создать администратора вручную с помощью следующей команды:

docker exec -it keycloak /opt/keycloak/bin/kc.sh bootstrap-admin --username admin --password admin

Если вы все еще сталкиваетесь с проблемами доступа, убедитесь, что ваш Docker-контейнер правильно настроен и что порты открыты для доступа. Вы также можете проверить логи контейнера на наличие ошибок, выполнив команду:

docker logs keycloak

Настройки Keycloak

После первого входа в админ-панель Keycloak, если надо вы можете изменить язык интерфейса. Для этого перейдите в настройки профиля и выберите нужный язык из выпадающего списка.

Коротко про Keycloak

Основные операции в Keycloak

Создание Realm в Keycloak Realm — это изолированная область, в которой вы можете управлять пользователями, клиентами и ролями. Чтобы создать новый Realm, выполните следующие шаги:

Войдите в админ-панель Keycloak.

Нажмите на "Create Realm".

Коротко про Keycloak

Введите имя для нового Realm и нажмите "Create".

Коротко про Keycloak

Создание клиента Клиент — это приложение, которое будет использовать Keycloak для аутентификации. Чтобы создать клиента:

Перейдите в раздел "Clients".

Нажмите "Create".

Создание роли Роли используются для управления доступом. Чтобы создать роль: Перейдите в раздел "Realm roles".

Нажмите "Add Role".

Введите имя роли и нажмите "Save".

Коротко про Keycloak

Далее в настройках этой роли вы сами можете дать определенные права.

Чтобы создать нового пользователя:

Перейдите в раздел "Users".

Нажмите " Create new User".

Коротко про Keycloak

Заполните необходимые поля и нажмите "Create".

Коротко про Keycloak

После создания пользователя вы будете перенаправлены на страницу настроек пользователя.

Перейдите в раздел "Credentials" (Учетные данные).

В этом разделе вы можете установить пароль для нового пользователя. Введите желаемый пароль в поле "Password" и подтвердите его в поле "Password Confirmation".

Коротко про Keycloak

Заключение

Keycloak — это мощный инструмент для управления идентификацией и доступом, который предлагает множество возможностей для разработчиков. Его простота в установке и настройке делает его идеальным выбором для обеспечения безопасности приложений.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1) Keycloak Documentation. // [электронный ресурс]. URL: https://www.keycloak.org/documentation (дата обращения 21.01.2025).

2) Интеграция Keycloak в приложение Spring Boot 3 с использованием протокола OAuth2.0 // [электронный ресурс]. URL: https://habr.com/ru/companies/axenix/articles/780422/ (дата обращения 20.01.2025).

3) Цикл постов про Keycloak. Часть первая: Внедрение// [электронный ресурс]. URL: https://habr.com/ru/articles/716232/ (дата обращения 20.01.2024).

1
Начать дискуссию