Использование OpenID для входа в Loginom

27 февраля 2025
0 комментариев

В современных корпоративных информационных системах важную роль играет централизованное управление доступами и безопасная аутентификация пользователей. Рассмотрим, как настроить вход в Loginom через OpenID Connect, используя Keycloak в качестве сервера аутентификации.

Loginom широко используется в корпоративных информационных системах благодаря гибкости, богатому функционалу и широкому спектру решаемых задач. Это делает платформу ключевым инструментом для работы с данными в крупных компаниях.

Одним из критически важных аспектов корпоративных решений является безопасность. Современные IT-инфраструктуры должны соответствовать строгим требованиям информационной безопасности, обеспечивать централизованное управление доступами и поддерживать гибкие механизмы аутентификации и авторизации.

OpenID Connect (OIDC) — один из таких механизмов. Этот стандарт позволяет безопасно интегрировать Loginom в корпоративную среду, обеспечивая единый вход (SSO) и централизованное управление доступами, избавляя от необходимости хранить пароли в самой системе.

В этой статье мы покажем, как настроить вход в Loginom через OpenID Connect, используя Keycloak в качестве сервера аутентификации.

Про аутентификацию и авторизацию в Loginom

Прежде чем переходить к настройке подключения по OpenID Connect, важно разобраться с базовыми принципами аутентификации и авторизации, на которых строится управление доступом в Loginom.

Когда пользователь открывает в браузере стартовую страницу Loginom, он видит форму ввода логина и пароля.

Стандартный вход в Loginom

Стандартный вход в Loginom

Аутентификация — первый шаг. После ввода логина и пароля система проверяет, действительно ли это зарегистрированный пользователь. Если проверка успешна, Loginom «узнает» пользователя и дает ему доступ к системе. Регистрация пользователя в системе — обязанность администратора Loginom, как и его блокировка при необходимости.

Авторизация — второй шаг. После подтверждения личности система определяет права пользователя: какие функции и данные ему доступны. На этом этапе формируется полная картина возможностей пользователя в Loginom, включая ограничения на доступ к определенным разделам или ресурсам. Этому способствует ролевая модель, определяемая в системе администратором платформы.

Если аутентификация отвечает на вопрос «Кто ты?», то авторизация — «Что тебе разрешено делать?».

Что такое OpenID Connect и OAuth 2.0

Рассмотренный ранее механизм аутентификации и авторизации в Loginom — это стандартное решение, доступное всем пользователям серверных редакций. В этом случае учетные записи хранятся во внутреннем хранилище сервера Loginom и надежно защищены.

Однако для владельцев Enterprise-редакции Loginom доступны расширенные механизмы аутентификации:

  • OpenID Connect + OAuth 2.0 (далее — OpenID) — позволяет интегрировать Loginom с внешними системами аутентификации и авторизации, обеспечивая единый вход (SSO);
  • LDAP (Lightweight Directory Access Protocol) — используется для хранения и управления учетными записями, группами и правами доступа в централизованных каталогах, таких как Active Directory или OpenLDAP.

Эти механизмы позволяют централизованно управлять доступом и гибко настраивать права пользователей в соответствии с корпоративными стандартами безопасности.

OpenID Connect

Прежде чем предоставить пользователю доступ к системе, необходимо подтвердить его личность. OpenID Connect (OIDC) решает эту задачу аутентификации.

При входе в Loginom пользователь вводит свои данные, а сервер аутентификации (например, Keycloak или Okta) проверяет их. Если аутентификация успешна, Loginom получает ID Token, который подтверждает, кто именно вошел в систему. Этот токен содержит основную информацию о пользователе и позволяет Loginom корректно определить, с каким пользователем он взаимодействует.

OAuth 2.0 авторизация без передачи паролей

Стандарт OAuth 2.0 отвечает за авторизацию, позволяя приложениям получать ограниченный доступ к другим системам без передачи паролей. Например, если Loginom запрашивает доступ к данным, сервер авторизации выдает Access Token, подтверждающий, что у пользователя есть право на этот доступ.

Использование OIDC и OAuth 2.0 вместе позволяет разделить процессы аутентификации и авторизации, обеспечивая безопасный вход в Loginom.

Почему это важно для Loginom?

Благодаря OpenID Loginom не хранит у себя пароли, а получает данные безопасно через стандартные API. Вместо этого:

  • управление учетными записями передается серверу аутентификации (Identity Provider), который централизованно управляет пользователями;
  • права и доступы регулируются корпоративными ролевыми моделями;
  • единый вход (Single Sign-On, SSO) позволяет автоматически входить в несколько приложений с одной учетной записью.

Такие надстройки по работе с учетными записями, как обновление информации о пользователе, периодическая смена пароля, выдача временного пароля, управление сроком действия учетных записей берет на себя сервер аутентификации (Identity Provider) и администратор. Это также включает двухфакторную аутентификацию (2FA), контроль сессий пользователей и мониторинг попыток входа. Благодаря этому Loginom не приходится управлять этими процессами самостоятельно, делегируя эту часть другому специализированному инструменту и администраторам Identity Provider.

Основные элементы OpenID

Чтобы хорошо ориентироваться в настройках OpenID в Loginom, важно знать основные термины.

ЭлементОписание
ПользовательЧеловек, который хочет войти в систему
Сервер аутентификации/авторизации (Identity Provider)Система, которая управляет доступом пользователя к запрашиваемому ресурсу. Довольно часто процессы аутентификации и авторизации производятся в рамках нескольких вызовов API одной системы (например, Keycloak). Но это необязательное условие, и возможен вариант, когда это совершенно разные системы
Scope (Область действия)Набор разрешений, которые определяют, какие данные запрашиваются у сервера аутентификации. Например, openid, profile, folders.
URL точки аутентификацииURL, на который перенаправляется пользователь для входа в систему после нажатия на кнопку «Войти через OpenID»
Код авторизацииВременный код, который клиентское приложение (в данном случае им выступает Loginom) может обменять на токены
URL запроса токенаURL, на который клиентским приложением отправляется код авторизации для получения токена доступа (Access token)
ID токенРезультатом процесса аутентификации на основе OpenID Connect является ID токен, который передается приложению в качестве доказательства того, что пользователь прошел аутентификацию. ID token приходит вместе с токеном доступа после обмена кода авторизации
Токен доступа (Access Token)Токен, который подтверждает, что у клиента есть право доступа к ресурсам и содержит информацию о пользователе. Чаще всего это JWT-токен — веб-токен в формате JSON закодированный в base64.
Claim (Клейм)Информация записанная в Access Token в виде пары имя клейма/значение клейма, которое содержит определенную информацию о пользователе (например, name, folders, roles).
UserInfo EndpointAPI, через которое приложение может получить дополнительные данные о пользователе. Особенно актуально, когда пользователь новый, и система о нем еще ничего не знает.
Поток авторизацииСхема взаимодействия пользователя, клиентского приложения (Loginom) и сервера авторизации (Keycloak)

Поток аутентификации и авторизации при использовании OpenID Connect в Loginom

Схема взаимодействия выглядит следующим образом:

  1. пользователь заходит на стартовую страницу Loginom и нажимает на кнопку «Войти через OpenID»;
  2. происходит перенаправление пользователя на Сервер авторизации (форму ввода логина/пароля);
  3. пользователь вводит свой логин и пароль;
  4. в случае успеха Сервер авторизации перенаправляет пользователя на страницу Loginom, передавая при этом код авторизации;
  5. Loginom сервер обращается к Серверу авторизации для обмена кода авторизации на токен доступа;
  6. сервер авторизации предоставляет ID-токен и Access-токен;
  7. с помощью полученного Access-токена Loginom запрашивает дополнительные данные пользователя у Сервера авторизации;
  8. сервер авторизации возвращает запрошенные дополнительные данные пользователя;
  9. на основе токена и дополнительных данных Loginom осуществляет аутентификацию и авторизацию пользователя, предоставляя доступ.

Более наглядно это показано на диаграмме вызовов ниже.

Поток аутентификации и авторизации в Loginom

Далее рассмотрим настройку аутентификации и авторизации в Loginom через Keycloak.

Настройка OpenID для Loginom через Keycloak

Почему Keycloak?

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

Основные причины выбора Keycloak для интеграции:

  • открытый исходный код и бесплатность — без лицензионных ограничений;
  • гибкость настройки — поддержка ролей, политик безопасности и Single Sign-On (SSO);
  • простая интеграция — легко подключается к Loginom и другим корпоративным сервисам;
  • широкая поддержка различных стандартов.

Keycloak хорошо интегрируется с LDAP, Active Directory, Kerberos.

Среда развертывания

В рамках данной статьи при настройке входа в Loginom через OpenID Connect учитываются следующие особенности развертывания:

1. Сервер

  • Операционная система: Ubuntu;
  • Аппаратные ресурсы: 4 ядра, 16 ГБ оперативной памяти, 100 ГБ дискового пространства.

2. Loginom

  • Редакция: Enterprise;
  • Версия: 7.2.3 (поддержка OpenID Connect появилась начиная с 7.2.0);
  • Установка: Loginom Server уже установлен и запущен, дополнительных пакетов или зависимостей не требуется.

3. Сервер аутентификации (Identity Provider)

  • Программное обеспечение: Keycloak (версия 20.0 не является обязательным требованием);
  • Установка: Keycloak уже установлен и запущен, дополнительные расширения не требуются.

Как установить Keycloak?
См. официальную документацию: Keycloak — Getting Started.

Важно:
Версия Loginom под Linux выбрана не специально: вход по OpenID Connect поддерживается на всех операционных системах, где работает Loginom.

Настройка со стороны Keycloak

Для начала настроим Keycloak для работы с Loginom.

Необходимо войти в панель администрирования Keycloak под учетными данными администратора.

Вход в Keycloak

Вход в Keycloak

​​​​1. Создание нового Realm

Для начала создадим новый Realm (изолированную область) для Loginom.

Realm в Keycloak — это изолированная область аутентификации, в которой хранятся пользователи, роли, политики безопасности и настройки аутентификации.

Позволяет:

  • разделять пользователей (например, клиентов и сотрудников в разных Realms)
  • настраивать отдельные правила аутентификации
  • управлять разными приложениями в одном Keycloak

Каждый Realm действует независимо, что позволяет централизованно управлять доступами в разных системах.

Необходимо:

  • нажать кнопку «Create Realm»;
Создание Realm в Keycloak

Создание Realm в Keycloak

  • указать имя нового Realm (например, Loginom) и нажать кнопку «Create».
Ввод имени Realm и сохранение в Keycloak

Ввод имени Realm и сохранение в Keycloak

2. Создание Client

Далее для нашего Realm создадим новый клиент.

Client в Keycloak — это приложение или сервис, который использует Keycloak для аутентификации и авторизации пользователей.

Позволяет:

  • настроить способы входа (OpenID Connect, SAML);
  • определить уровни доступа и разрешения;
  • гибко управлять сессиями и токенами.

Каждое приложение, интегрированное с Keycloak (в том числе Loginom), регистрируется как Client и получает индивидуальные настройки безопасности.

Необходимо:

  • перейти во вкладку «Clients» и нажать кнопку «Create client»;
Создание нового клиента в Keycloak

Создание нового клиента в Keycloak

​​​​​

  • задать его имя (например, «LoginomClient») и выбрать тип клиента «OpenID Connect»;
Выбор типа клиента OpenID Connect в Keycloak

Выбор типа клиента OpenID Connect в Keycloak

​​

  • нажать кнопку «Next».

С помощью ползунка включаем аутентификацию клиента и авторизацию. А с помощью чекбоксов выбираем «Standard Flow» и отключаем «Direct access grants» (необязательно, но он для работы с Loginom использоваться не будет). С точки зрения стандарта Oauth 2.0 это «Authorization Code Flow». Используется для приложений, где требуется высокий уровень безопасности.

Выбор типа клиента OpenID Connect в Keycloak

Выбор типа клиента OpenID Connect в Keycloak

После нажатия на кнопку «Save» создастся новый клиент для работы с Loginom.

Включение аутентификации и авторизации в настройках клиента означает, что приложение должно предъявить client_id и client_secret при обращении к Keycloak (помимо пользователей аутентификацию и авторизацию должен пройти сам Loginom Server).

Хоть это и не является обязательным условием, желательно подобную настройку все же осуществить как меру дополнительной защиты. После включения аутентификации и авторизации client_secret можно будет узнать на вкладке Credentials в информации о клиенте.

Вкладка Credentials в Keycloak

Вкладка Credentials в Keycloak

​​​​​​Потребуется также указать «Valid redirect URIs» в секции «Access Settings» — список разрешенных URL-адресов, на которые Keycloak может перенаправлять пользователя после успешной аутентификации. Подобная настройка не допускает перехвата данных в случаях, когда злоумышленник пытается «встроиться посередине». Здесь нужно указать адрес страницы входа Loginom ({loginom_host_name}/app/).

Далее можно выбрать тему для страницы входа в Loginom через Keycloak в секции «Login settings» (в настройках клиента проскроллить 2-3 экрана вниз) и еще раз нажать кнопку «Сохранить».

Устаналиваем тему в Keycloak

Устанавливаем тему в Keycloak

Этого минимального набора настроек клиента достаточно для работы Keycloak в связке с Loginom. При необходимости можно задать дополнительные расширенные настройки, такие как: Access Token Lifespan, ID Token Lifespan, Refresh Token Lifespan (время жизни различных видов токенов).

Настройка времени жизни токенов в Keycloak

Настройка времени жизни токенов в Keycloak

3. Создание ролевой модели

Определим ролевую модель в Keycloak, которая должна соответствовать модели в Loginom.

Роль в Loginom (доступные функции)Роль в Keycloak
Проектирование сценариевDesigner
Просмотр сценариевViewer
АдминистрированиеManager
Публикация пакетовPublisher
Полный доступ к файловому хранилищуFull access to the file storage
Доступ ко всем задачам в планировщикеAccess to all tasks in the scheduler

Необходимо:

  • перейти в раздел «Realm roles» и нажать кнопку «Create role»;
Создаем ролевую модель в Keycloak

Создаем ролевую модель в Keycloak

  • в открывшемся окне ввести название роли и описание;
Создаем роль в Keycloak

Создаем роль в Keycloak

  • аналогичную операцию проделать для всех остальных ролей, каждый раз сохраняя новую роль и возвращаясь на вкладку «Realm roles».
Итоговый список ролей в Keycloak

Итоговый список ролей в Keycloak

4. Создание пользователей

В рамках этой статьи мы создадим пользователя вручную. В реальной продуктовой среде рекомендуется настроить интеграцию с корпоративными провайдерами аутентификации, такими как LDAP, Active Directory или Kerberos, если такая интеграция ещё не настроена.

Для создания пользователя необходимо:

  • перейти во вкладку «Users» и нажать кнопку «Create new user»;
Создаем пользователя в Keycloak

Создаем пользователя в Keycloak

  • заполнить основную информацию о пользователе;
Заполняем профиль пользователя в Keycloak

Заполняем профиль пользователя в Keycloak

  • на вкладке «Credentials» можно создать пароль пользователя. При этом есть опция выбора временный/постоянный. Если пароль временный, пользователь должен будет его в обязательном порядке изменить при первой операции аутентификации, указав свой вариант.
Создаем пароль пользователя в Keycloak

Создаем пароль пользователя в Keycloak

Делаем пароль постоянным или временным

Делаем пароль постоянным или временным

Keycloak предоставляет различные механизмы управления учетными записями, которые могут быть полезны в корпоративной среде и о которых нельзя не упомянуть из-за их взаимосвязи с входом в Loginom:

  • запрос обновления профиля — заставляет пользователя изменить или дополнить данные при следующем входе;
  • подтверждение email — отправляет пользователю запрос на подтверждение почты;
  • отправить условия использования перед входом в систему, которые пользователь должен принять (например, можно явно проинформировать, что разрешается и что запрещается делать при работе в Loginom);
  • включение двухфакторной аутентификации — добавляет дополнительный уровень защиты и т.д.
Различные опции для взаимодействия с пользователями

Различные опции для взаимодействия с пользователями

5. Установка дополнительных параметров для пользователя

Keycloak позволяет настраивать дополнительные параметры пользователя, которые могут быть полезны при интеграции с Loginom.

5.1 Добавляем возможность выдавать пользователям доступ к папкам

Во вкладке «Attributes» можно добавить кастомные атрибуты. Например, атрибут folders может содержать список папок в Loginom, к которым пользователь должен иметь доступ.

Создаем дополнительный атрибут с названиями папок в Keycloak

Создаем дополнительный атрибут с названиями папок в Keycloak

Однако просто добавить атрибут недостаточно — его еще нужно включить в токен и сделать доступным через «Scope». Для этого необходимо:

  • зайти в настройки «Scope», нажать ее кнопку «Create client scope» и указать имя, описание, тип «Default» (его имя нужно будет в дальнейшем использовать при запросе соответствующей информации с помощью Loginom);
Создаем новый Scope

Создаем новый Scope

Создаем новый Scope

Создаем новый Scope

  • обязательно нажать кнопку «Save», после чего появится возможность добавления правила сопоставления (мэппинга);

  • на вкладке «Mappers» создать новый «Mapper», нажав на кнопку «Сonfigure a new mapper» и выбрав тип «User Attribute» «Scope» будет связан со свойством пользовательского атрибута;

Cоздаем новый «Mapper»

Cоздаем новый «Mapper»

Создаем Mapper для связки Scope с User Attribute

Создаем Mapper для связки Scope с User Attribute

  • установить галочки: «Add to ID Token», «Add to Access Token», «Add to UserInfo», «Multivalued» (может быть массивом), «Aggregate attribute values» (добавляет группировку по ключу).
Добавляем атрибут во все токены

Добавляем атрибут во все токены

  • перейти в раздел «Clients» в настройки клиента «LoginomClient», затем перейти на вкладку «Clients scopes» и, нажав на кнопку «Add client scope», выбрать соответствующий «Scope» с опцией «Optional». В нашем случае это folders.
Раздел «Clients

Раздел «Clients»

Кнопка «Add client scope»

Кнопка «Add client scope»

Теперь параметр folders будет передаваться в «ID Token», «Access Token», «UserInfo Endpoint» и сможет быть обработанным в Loginom.

5.2 Назначаем роли пользователям

На вкладке «Role mapping» можно назначить роли для пользователя, нажав на кнопку «Assign role» и выбрав доступные из списка.

Назначаем роль пользователю в Keycloak

Назначаем роль пользователю в Keycloak

Выбираем роль пользователя из списка

Выбираем роль пользователя из списка

Если нужно отвязать какую-либо роль, то это делается установкой чекбокса и нажатием кнопки «Unassign».

Отвязываем роль пользователя в Keycloak

Отвязываем роль пользователя в Keycloak

Можно немного упростить процесс с назначением ролей, задав роль по умолчанию. Например, можно установить дефолтную роль «Viewer» для всех пользователей и все новые добавленные пользователи будут получать её автоматически. Делается это в разделе «Realm settings» на вкладке «User registration» с помощью кнопки «Assign role».

Определяем роль по умолчанию в Keycloak

Определяем роль по умолчанию в Keycloak

​​​​​5.3 Установка двухфакторной аутентификации

Для дополнительной защиты можно включить двухфакторную аутентификацию, требующую ввода временного одноразового кода при каждом входе в Loginom.

Это необязательная настройка, но если в компании есть соответствующие требования по информационной безопасности, необходимо будет реализовать.

В Keycloak есть разные штатные средства для реализации двухфакторной аутентификации:

  • одноразовые пароли (OTP) через мобильное приложение (Google Authenticator, FreeOTP, Authy);
  • WebAuthn (FIDO2) вход с биометрией (Face ID, отпечаток пальца) или USB-ключом (YubiKey, Titan Security Key);
  • SMS-аутентификация (OTP по SMS) через отдельный провайдер (например, Twilio, Nexmo, AWS SNS);
  • Email-аутентификация (OTP по почте) одноразовый код приходит на email пользователя;
  • Push-уведомления через Duo Security, Firebase, Auth0 (запрос подтверждения входа).

В рамках данной статьи рассмотрим настройку OTP через мобильное приложение, а с другими методами можно ознакомиться в официальной документации Keycloak.

Процесс выглядит следующим образом:

  • администратор в разделе Authentication устанавливает два чекбокса в «Configure OTP», которые делают данный способ доступным и используемым как действие для всех пользователей по-умолчанию;
Настраиваем OTP через мобильное приложение в Keycloak

Настраиваем OTP через мобильное приложение в Keycloak

​​​​​

  • при первом входе Keycloak предлагает пользователю настроить двухфакторную аутентификацию, отобразив QR-код;
QR код при первом входе в Loginom

QR код при первом входе в Loginom

  • пользователь сканирует QR-код в приложении-аутентификаторе (Google Authenticator, FreeOTP, Authy) и добавляет Loginom в список аутентификаторов;

  • при каждом последующем входе в Loginom пользователь вводит логин, пароль и одноразовый код из мобильного приложения.

Пользователь вводит логин и пароль при входе в Loginom

Пользователь вводит логин и пароль при входе в Loginom

Пользователь вводит одноразовый пароль при входе в Loginom

Пользователь вводит одноразовый пароль при входе в Loginom

Как работает OTP?

  • приложение генерирует временный одноразовый код со сроком жизни 30 секунд;
  • когда пользователь вводит код, Keycloak проверяет его и пускает в систему.

На этом с настройкой Keycloak мы закончили. Переходим к настройкам Loginom.

Настройка со стороны Loginom

Если на предыдущем шаге всё было сделано правильно, то данная настройка будет осуществлена значительно проще и быстрее.

Чтобы настроить вход через OpenID, необходимо зайти под учетной записью администратора и на вкладке «Параметры» указать настройки в группе OpenID.

Настройка параметров OpenID в Loginom

Настройка параметров OpenID в Loginom

В таблице ниже указаны параметры, их описание и мэппинг с Keycloak.

ПараметрОписаниеМэппинг с Keycloak
Текст кнопки входаТекст, который отображается на кнопке входа по OpenID-
Адрес клиентаURL, на который Keycloak будет возвращать ответ после аутентификации. Как правило, это URL стартовой страницы LoginomДолжен совпадать с «Valid redirect URIs», указанными в настройках клиента в Keycloak
Идентификатор клиентаУникальный идентификатор клиента (client_id)Название клиента OpenID Connect в Keycloak. В рамках данного примера — «LoginomClient»
Ключ клиентаСекретный ключ клиента (client_secret). Используется для аутентификации Loginom при запросе токеновМожно посмотреть во вкладке «Credentials» в настройках клиента Keycloak. Строка «Client secret»
URL точки аутентификацииURL, на который Loginom перенаправляет пользователя для прохождения аутентификацииФормат:{host_name}/realms/{realm_name}/ protocol/openid-connect/auth
URL запроса токенаURL, по которому Loginom запрашивает Access Token и ID TokenФормат:{host_name}/realms/{realm_name}/ protocol/openid-connect/token
URL запроса информации о пользователеURL, по которому Loginom запрашивает дополнительные данные о пользователеФормат:{host_name}/realms/{realm_name}/ protocol/openid-connect/userinfo
Область действияНабор разрешений, определяющих, какие данные о пользователе будут запрашиватьсяПо умолчанию — openid, profile. В данном примере также используется дополнительный атрибут folders, настроенный в Keycloak
Клейм имени пользователяКлюч токена, содержащий логин пользователя«Username»
Клейм полного имени пользователяПолное имя пользователя, которое будет отображаться в профиле Loginom«First name» или «Last name»
Клейм списка ролейКлюч токена, содержащий список ролей пользователяОбычно realm_access.roles
Роль нового пользователяРоль, которая будет назначена пользователю по умолчанию, если в токене отсутствует список ролейМы настроили дефолтную роль в Keycloak, данная настройка не потребуется
Список имен ролейСоответствие ролей Loginom ролям, определённым в KeycloakМэппинг с ролями в Keycloak (пример на изображении ниже)
Клеймы, извлекаемые в переменныеСписок клеймов, разделённых запятой, значения которых передаются в сценарии на порт «Переменные сессии»-
Клейм списка общих папокКлюч токена, содержащий список директорий, к которым у пользователя есть доступЗначение атрибутов folders в Keycloak
Автоматическое получение токенаЕсли включено (true), пользователь будет автоматически перенаправлен на страницу ввода логина и пароля, без необходимости нажимать кнопку «Войти через OpenID»-
Обновлять роль пользователяЕсли включено, Loginom будет обновлять роли и доступы пользователя при каждом входе. Если отключено, роли и права доступа обновляются только при первом входе, а дальнейшие изменения администратор должен вносить вручную-
Разрешать вход пользователям без ролиПозволяет входить пользователям, у которых не указана ни одна роль в токене. Если отключено, такие пользователи не смогут войти в систему-

Сопоставление ролей Loginom и Keycloak производится с помощью графического редактора:

Сопоставление ролей Loginom и Keycloak

Сопоставление ролей Loginom и Keycloak

URL точек аутентификации, авторизация и дополнительных данных о пользователях можно посмотреть в настройках Keycloak в разделе Realm Settings -> General -> OpenID Endpoint Configuration.

После ввода настроечных параметров появится возможность входа в Loginom через OpenID.

Входа в Loginom через OpenID

Вход в Loginom через OpenID

​​​​​При нажатии кнопки происходит перенаправление на вход через Keycloak.

Перенаправление на вход через Keycloak

Перенаправление на вход через Keycloak

Теперь можно ввести значения логина и пароля (из Keycloak), после чего произойдет вход в Loginom.

Можно сделать еще одну настройку и убрать стандартный вход в Loginom. В этом случае пользователь будет сразу переводиться на страницу входа Keycloak. Для этого нужно отредактировать файл конфигурации server.json (в моем случае он располагается по пути: /var/www/loginom), добавив следующую строчку: "openid": "force".

Пример:

{
    "wsport": null,
    "host": null,
    "openid": "force"
}

Теперь пользователю недоступна стандартная страница входа в Loginom и при входе он сразу перенаправляется на страницу входа Keycloak.

Особенности работы Loginom с OpenID

Пользователь получит доступ только к тем папкам, что были указаны в настройках Keycloak, и ему доступны те действия, что были определены в ролевой модели.

Пользователь получит доступ только к разрешенным в Keycloak папкам

Пользователь получит доступ только к разрешенным в Keycloak папкам

​​​​​​Если вы следовали указанным настройкам, то при смене роли в Keycloak (например, на администратора) изменения автоматически применятся при следующей аутентификации пользователя.

Назначаем роль администратора в Keycloak

Назначаем роль администратора в Keycloak

Назначаем роль администратора в Keycloak

Назначаем роль администратора в Keycloak

Аналогично работает добавление новых доступных пользователю папок.

Добавление доступа к папкам в Keycloak

Добавление доступа к папкам в Keycloak

Отображаются только доступные папки в Loginom

Отображаются только доступные папки в Loginom

После настройки OpenID Connect аутентификация и авторизация в Loginom через Keycloak будет работать по следующему сценарию:

  • если пользователя нет в Loginom — он будет автоматически зарегистрирован, а основная информация (логин, имя, роли, доступы к папкам) возьмётся из токена и UserInfo Endpoint;
  • если пользователь уже есть в Loginom и его параметры совпадают с переданными из Keycloak (роли, доступ к папкам) — он войдет в систему без изменений;
  • если пользователь уже есть в Loginom, в настройках OpenID включена опция «Обновлять роль пользователя», и его роли или доступы изменились в Keycloak — Loginom автоматически обновит информацию и применит новые параметры доступа;
  • если пользователь изначально был создан вручную в Loginom — для передачи управления его профилем в Keycloak потребуется включить соответствующую настройку.
Передаем управление профилем из Loginom в Keycloak

Передаем управление профилем из Loginom в Keycloak

Как отключить вход в Loginom с помощью OpenID

Если по каким-либо причинам требуется отключить вход в Loginom с помощью OpenID, то можно в панели администрирования очистить содержимое client_id. Отключение входа произойдет автоматически.

Если до этого редактировался файл конфигурации server.json, то предварительно потребуется вернуть его в исходное состояние, убрав строку "openid": "force".

Заключение

Настройка OpenID Connect в Loginom через Keycloak позволяет централизованно управлять пользователями, обеспечивая безопасный и удобный вход. Теперь не нужно вручную создавать и настраивать учетные записи — все права и доступы обновляются автоматически, а пользователи могут входить в систему по корпоративным учётным данным.

Дальнейшие шаги:

  • настроить SSO (единый вход) в другие системы через Keycloak, в том числе и к источникам данных;
  • добавить дополнительные атрибуты для передачи в Loginom — по аналогии с folders из Keycloak можно передавать и другие атрибуты пользователей, которые при соответствующих настройках со стороны Loginom можно использовать в сценарии как переменные;
  • усилить безопасность с помощью двухфакторной аутентификации — мы рассмотрели один из способов, при необходимости можно пойти дальше и попробовать остальные.

Если в процессе интеграции возникли вопросы, всегда можно заглянуть в документацию Keycloak.

Дополнительные материалы:

Использование PMML в Loginom

Как избежать проклятий: правильная организация сценариев в Loginom

Loginom — ETL-платформа enterprise уровня

#loginom

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

Подписывайтесь на телеграмм-канал Loginom
Новости, материалы по аналитике, кейсы применения, активное сообщество
Подписаться