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

Рисунок 1 - Внешний вид формы входа платформы 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 платформы для взаимодействия с базой данных(добавления учётных записей) |
Необходимо отредактировать конфигурационный файл /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 tomcat7 restart ) для их применения. |
При включенной интеграции с платформой SSO Учётные Записи ЛК автоматически экспортируются в базу данных платформы SSO, с предварительной проверкой возможности создания пользователя на платформе SSO и ЛК. Из автоматического экспорта исключаются Учетные Записи пользователей с нулевой и default_platform_xxx системными ролями в ЛК. Если при создании Учётной Записи в ЛК, создаваемый пользователь есть в системе SSO -вернётся ошибка 409 (Рисунок 2).

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

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

Рисунок 4 - Диалоговое окно сихронизации с SSO
При включенной интеграции с платформой SSO при создании пользователя в ЛК проверяется наличие пользователя на платформе SSO, с задаваемым логином и email:
При включенной интеграции с платформой 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