Настройка SSO#
Keycloak#
Введение#
Эта инструкция описывает настройку единого входа (SSO) по OpenID Connect (OIDC) между Keycloak и сервером приложений Global Server.
Мы создадим Realm и клиента в Keycloak, подключим федерацию пользователей (например, LDAP/AD), настроим защиту от брутфорса и (опционально) второй фактор аутентификации по e-mail, а затем соединим Keycloak и Global Server через global3.config.xml.
Global Server поддерживает SSO начиная с версии 1.25.0-rc33.
Общая схема работы#

Предварительные требования#
Развёрнутый Keycloak (версии 21+).
Доступ администратора к Keycloak и Global AS.
SMTP-сервер для отправки почты (для 2FA по e-mail).
Часть 1. Настройка Keycloak#
Создание Realm#
Зайдите в админ-консоль Keycloak -> Create realm.
Укажите имя (например,
dev-test).Запомните URL realm:
https://<keycloak-host>/realms/dev-test.
Настройка федерации пользователей (LDAP/AD)#
Realm -> User federation -> Add provider: ldap.
Заполните поля:
Connection URL;
Bind DN / Bind credentials;
Users DN (Base DN);
Use StartTLS/SSL — по необходимости.
Во вкладке Mappers настройте сопоставление атрибутов (
username,email,firstName,lastName). При использовании нескольких доменов настройте маппинг имени пользователя на userPrincipalName.Сохраните и выполните импорт пользователей.
Создание клиента (OIDC) для Global Server#
Realm -> Clients -> Create .
Заполните:
Client Type: OpenID Connect;
Client ID:
global-erp;Client authentication: ON (конфиденциальный клиент).
Valid Redirect URIs —
https://{global.server}/*.Scopes —
openid email profile.Сохраните и сгенерируйте Client Secret.
Включение защиты от брутфорса#
Realm -> Realm Settings -> Security Defenses -> Brute Force Detection.
Включите и задайте параметры:
Max login failures;
Wait increment;
Quick login check и т.д.
(Опционально) Настройка 2FA с кодом на e-mail#
Realm -> Realm Settings -> Email — настройте SMTP.
Установите плагин (например
keycloak-email-otp)Realm -> Authentication -> Flows.
Скопируйте поток «Browser» и добавьте шаг
Email OTPпослеUsername Password Form-> Required.
Часть 2. Настройка Global AS (global3.config.xml)#
Добавьте новый блок <openId> в конфигурацию:
<security>
<authenticators>
<openId name="dev-test" default="true" autoLogin="false">
<provider url="https://<keycloak-host>/realms/dev-test"/>
<client id="global-as"
secret="*** CLIENT_SECRET ***"
authMethod="post"
scopes="openid,profile,email">
</client>
</openId>
</authenticators>
</security>