Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

        SSO (Single Sign On) — это технология, с помощью которой пользователь, будучи аутентифицированным в клиентской системе идентификации, будет автоматически авторизован на сервисах входящих в эту систему.


Рисунок 1 - Внешний вид формы входа платформы SSO

Настройка взаимодействия SSO с Личным кабинетом:

  • Необходимо отредактировать конфигурационный файл /etc/eltex-wifi-cab/system.xml
    Где в блоке настроек SSO указать параметры для интеграции в систему.

        <!-- SSO Settings -->
        <entry key="sso.enabled">false</entry>
        <entry key="sso.redirectUri">http://localhost:8080/wifi-cab/sso</entry>
        <entry key="sso.clientSecret"></entry>
        <entry key="sso.clientId"></entry>
    
        <!-- SSO Auth -->
        <entry key="sso.auth.server.protocol">http</entry>
        <entry key="sso.auth.server.address"></entry>
        <entry key="sso.auth.server.port">80</entry>
    
        <entry key="sso.auth.auth.path">/auth/realms/b2b/protocol/openid-connect/auth</entry>
        <entry key="sso.auth.logout.path">/auth/realms/b2b/protocol/openid-connect/logout</entry>
    
        <!-- SSO REST -->
        <entry key="sso.rest.server.protocol">http</entry>
        <entry key="sso.rest.server.address"></entry>
        <entry key="sso.rest.server.port">80</entry>
        <entry key="sso.rest.server.timeout.sec">10</entry>
        <entry key="sso.rest.protocol.version">2.0</entry>
        <entry key="sso.rest.username"></entry>
        <entry key="sso.rest.password"></entry>
    
        <entry key="sso.rest.getToken.path">/apiman-gateway/sso_b2b/getToken</entry>
        <entry key="sso.rest.getUserInfo.path">/apiman-gateway/sso_b2b/getUserInfo</entry>
        <entry key="sso.rest.addUser.path">/apiman-gateway/sso_b2b/addUser</entry>
        <entry key="sso.rest.updateUser.path">/apiman-gateway/sso_b2b/updateUser</entry>
        <entry key="sso.rest.delUser.path">/apiman-gateway/sso_b2b/delUser</entry>
        <entry key="sso.rest.addUserParam.path">/apiman-gateway/sso_b2b/addUserParam</entry>
        <entry key="sso.rest.delUserParam.path">/apiman-gateway/sso_b2b/delUserParam</entry>
        <entry key="sso.rest.getUserByName.path">/apiman-gateway/sso_b2b/getUserByName</entry>
        <entry key="sso.rest.resetPassword.path">/apiman-gateway/sso_b2b/resetPassword</entry>
        <entry key="sso.rest.getUserByParam.path">/apiman-gateway/sso_b2b/getUserByParam</entry>
    
    ПараметрЗначение
    sso.enabled
    включение интеграции с SSO (может принимать значения true/false)
    sso.redirectUri
    адрес, с которого производится перенаправление на платформу SSO
    sso.clientSecret

    секретный ключ клиента

    sso.clientId

    идентификатор клиента, созданный в системе SSO

    sso.auth.server.protocol
    протокол обращения к Auth-серверу SSO
    sso.auth.server.address
    публичный адрес Auth-сервера SSO
    sso.auth.server.port
    порт обращения к Auth-серверу SSO
    sso.rest.server.protocol
    протокол обращения REST API SSO
    sso.rest.server.address
    публичный адрес REST API SSO
    sso.rest.server.port
    порт обращения к REST API SSO
    sso.rest.servertimeout.sec
    время ожидания ответа от REST API SSO (в сек.)
    sso.rest.protocol.version
    версия протокола SSO (1.0 либо 2.0)
    sso.rest.username
    логин пользователя SSO платформы для взаимодействия с базой данных(добавления учётных записей)
    sso.rest.password
    пароль пользователя SSO платформы для взаимодействия с базой данных(добавления учётных записей)

Настройка взаимодействия SSO с Конструктором порталов:

Необходимо отредактировать конфигурационный файл /etc/eltex-portal-constructor/application.conf
Где в блоке настроек SSO указать параметры для интеграции в систему.

sso {
    enabled = false
    version = "2.0"

    rest {
        scheme = http
        host = localhost
        port = 80
        sso_api_path = /apiman-gateway/b2b_test
    }
    auth {
        scheme = http
        host = localhost
        port = 80
        authentication_path = /auth/realms/b2b/protocol/openid-connect/auth
        logout_path = /auth/realms/b2b/protocol/openid-connect/logout
    }

    params {
        client_id = id
        # URL of epadmin, URL must be in double quotes (!!!)
        redirect_uri = "http://localhost:8080/epadmin/sso" 
        client_secret = secret
    }
}


ПараметрЗначение
enabled
включение интеграции с SSO (может принимать значения true/false)
versionверсия протокола SSO (1.0 либо 2.0)
rest
блок настроек взаимодействия с REST API SSO
auth
блок настроек взаимодействия с Auth-сервером SSO
scheme
протокол обращения к SSO-серверу
port
порт обращения к SSO-серверу
client_id
идентификатор клиента, созданный в системе SSO
client_secret
секретный ключ клиента
redirect_uri
адрес, с которого производится перенаправление на платформу SSO
authentication_path
URL для аутентификации на платформе SSO
logout_path
URL для выхода с платформы SSO
sso_api_path
URL для работы с REST API SSO


После изменения настроек перезапустите tomcat ( service tomcat8 restart ) для их применения.

Синхронизация Учётных Записей ЛК и платформы SSO

  • При включенной интеграции с платформой SSO Учётные Записи ЛК автоматически экспортируются в базу данны платформы SSO, с предварительной проверкой возможности создания пользователя на платформе SSO и ЛК. Из автоматического экспорта исключаются Учентые Записи пользователей с нулевой и default_platform_xxx системными ролями в ЛК. Если при создании Учётной Записи в ЛК, создаваемый пользователь есть в системе SSO -вернётся ошибка 409 (Рисунок 2).

Рисунок 2 - Вывод ошибки при создании новой Учётной Записи в ЛК, логин которой уже есть в SSO.


  • Перед добавлением новой учётной записи в ЛК можно выполнить проверку логина на платформе SSO. Для этого перейдите в меню "Настройки",вкладка "Системные пользователи" и введите интересующий Вас логин в поле(рисунок 3) и нажмите кнопку "Проверить логин на SSO". По результаты вы увидете код с сообщением ответа на запрос к плаформе SSO(код ответа:404 - данных о пользователе не найдёно;код ответа:200 - вывод данных о пользователе в JSON-формате)

Рисунок 3 - Проверка логина на платформе SSO


  • Можно выполнить экспорт и синхронизацию уже имеющихся Учетных Записей ЛК с платформой SSO. Для этого перейдите в меню "Настройки",вкладка "Системные пользователи" и нажмите на кнопку "Синхронизировать с SSO". Откроется диалог с просьбой нажать кнопку "Старт" для начала синхронизации. В ходе синхронизации в диалоговом окне будет выведена информация о том, что синхронизация начата. В конце синхронизации в окне можно увидеть ответы на запросы синхронизации о каждой Учётной Записи и общий результат с количеством синхронизированных УЗ.

Рисунок 4 - Диалоговое окно сихронизации с SSO

Привязка пользователю ЛК к существующего пользователю SSO

При включенной интеграции с платформой SSO при создании пользователя в ЛК проверяется наличие пользователя на платформе SSO, с задаваемым логином и email:

  • Если пользователь с логином, создаваемым в ЛК, есть на SSO, но у него нет привязки в ЛК - то пользователь будет создан в ЛК, а на платформе SSO к пользователю с задаваемым логином будет привязан профиль в ЛК.
  • Если пользователь с логином, создаваемым в ЛК, есть на SSO, но у него есть привязка в ЛК - то будет получена соответствующая ошибка.

Локальная авторизация при включенной интеграции с платформой SSO

При включенной интеграции с платформой SSO при переходе на http://<ip-сервера>:8080/wifi-cab/ или http://<ip-сервера>:8080/epadmin/ происходит автоматический редирект на страницу аутентификации на платформе SSO. При необходимости, для авторизации в Личном Кабинете и Конструкторе порталов без обращения к SSO (или пользователями, которые не заведены на платформу SSO) можно использовать http://<ip-сервера>:8080/wifi-cab/local_auth или http://<ip-сервера>:8080/epadmin/local_auth


  • Нет меток