В этой статье:
Шаг 1. Сохранение технологической учётной записи для подключения к СУБД
Шаг 3. Настройка параметров для внешнего сервиса
Шаг 4. Настройка подключения к репозиторию
Шаг 5. Подготовка внешнего сервиса и открытие веб-приложения
При входе в репозиторий с использованием HTTP-заголовков после аутентификации пользователя на внешнем сервисе запросы к Bi-серверу должны дополняться HTTP-заголовками с информацией о пользователе.
Между прокси-сервером, который устанавливает соединение с Bi-сервером и дополняет запросы заголовками, и Bi-сервером должно быть настроено mTLS-соединение.
Примечание. Взаимодействие внешнего сервиса аутентификации и прокси-сервера не определяется в данной документации и может быть реализовано на усмотрение администратора.
Доверие Bi-сервера к прокси-серверу обеспечивается путем сравнения цифрового отпечатка сертификата, указанного в описании настроек внешнего сервиса в разделе ExtService файла settings.xml/реестре, и цифрового отпечатка сертификата, пришедшего от прокси-сервера при установке mTLS-соединения с Bi-сервером.
Если учётная запись пользователя внешнего сервиса содержится в менеджере безопасности, то будет выполнено подключение к репозиторию и вход в навигатор объектов под этим пользователем.
Если учётная запись пользователя внешнего сервиса не содержится в менеджере безопасности, то будет создан временный пользователь и добавлен в группы из списка атрибута, указанного в HTTP-заголовках. Если атрибут не задан, то временный пользователь добавляется во встроенную группу ПОЛЬЗОВАТЕЛИ.
Подключение к СУБД производится под технологической учётной записью.
Схема взаимодействия представлена в подразделе «Аутентификация в продукте».
Для подключения к репозиторию, необходимо выполнить описанные в данном шаге настройки для каждого репозитория. Повторите данный шаг на всех рабочих узлах кластера.
Для настройки подключения к репозиторию:
Запустите приложение PP.Util, расположенное в папке установки продукта «Форсайт. Аналитическая платформа», с помощью командной строки от имени администратора. Ниже приведены команды для настройки подключения к репозиторию. Вместо PP.Util используйте PP.Util_start.sh для выполнения команды в ОС Linux, PP.Util.exe для ОС Windows.
Примечание. В ОС Linux при сохранении зашифрованного пароля технологической учётной записи запрашивается единица лицензирования AnalyticsPlatform. Ознакомьтесь со способами указания системной переменной LSFORCEHOST или LSHOST перед выполнением PP.Util_start.sh.
если предполагается аутентификация на сервере базы данных под одной технологической учётной записью для всех пользователей внешнего сервиса, то в менеджере безопасности не обязательно добавлять всех внешних пользователей, но обязательно должен быть добавлен пользователь, учётные данные которого будут использоваться в качестве технологической учётной записи для подключения к СУБД. В этом случае данные единой технологической учётной записи должны быть сохранены с помощью команды:
PP.Util /save_creds /ALG gos <идентификатор репозитория> /DC <имя пользователя репозитория (технологической учётной записи)> <пароль пользователя>
Пример сохранения данных одной общей технологической учётной записи для всех пользователей внешнего сервиса:
PP.Util /save_creds /ALG gos REPOSITORY_ID /DC TECHNO_ACCOUNT TECHNO_PASSWORD
если предполагается аутентификация на сервере базы данных под разными технологическими учётными записями, соответствующими пользователю внешнего сервиса, то в менеджере безопасности не обязательно добавлять всех внешних пользователей, но обязательно должны быть добавлены пользователи, учётные данные которых будут использоваться в качестве соответствующих технологических учётных записей для подключения к СУБД. В этом случае данные каждой технологической учётной записи для соответствующих внешних пользователей должны быть сохранены с помощью команды:
PP.Util /save_creds /ALG gos <идентификатор репозитория> <имя пользователя репозитория (технологической учётной записи)> <пароль пользователя репозитория (технологической учётной записи)> <имя пользователя репозитория (внешнего сервиса)>
Пример сохранения данных различных технологических учётных записей:
PP.Util /save_creds /ALG gos REPOSITORY_ID TECHNO_NAME1 TECHNO_PASSWORD1 USER1
PP.Util /save_creds /ALG gos REPOSITORY_ID TECHNO_NAME2 TECHNO_PASSWORD2 USER2
PP.Util /save_creds /ALG gos REPOSITORY_ID TECHNO_NAME2 TECHNO_PASSWORD2 USER3
Пользователи TECHNO_NAME1, TECHNO_NAME2, учётные данные которых используются в качестве технологических, обязательно должны быть добавлены в менеджере безопасности. Пользователи внешнего сервиса USER1, USER2, USER3 могут быть добавлены в менеджере безопасности, а могут быть временными пользователями.
Примечание. Пользователь, используемый в качестве технологической учётной записи, должен обладать набором привилегий, который включает в себя привилегии соответствующих пользователей внешнего сервиса, для которых он сохранён.
При подключении к репозиторию происходит поиск сохранённой технологической учётной записи для подключения к СУБД:
Сначала выполняется поиск сохранённой технологической учётной записи, соответствующей пользователю внешнего сервиса;
Если такая учетная запись не найдена, то подключение к СУБД осуществляется под единой учётной записью, сохранённой по умолчанию с параметром /DC;
Если отсутствует единая учётная запись, сохранённая с параметром /DC, и учётная запись, соответствующая пользователю внешнего сервиса, то генерируется ошибка подключения.
После выполнения действий будет настроено подключение к репозиторию.
Между прокси-сервером, который устанавливает соединение с Bi-сервером и дополняет запросы HTTP-заголовками, и Bi-сервером должно быть настроено mTLS-соединение.
Шаги по настройке BI-сервера отличаются в зависимости от операционной системы.
Для настройки BI-сервера в ОС Linux:
Добавьте параметры SSL в файле конфигурации:
/etc/apache2-fp10.x/mods-available/fp10.x-biserver.conf в Debian-подобных дистрибутивах;
/etc/httpd-fp10.x/conf.d/fp10.x-biserver.conf в RedHat-подобных дистрибутивах;
/etc/httpd2-fp10.x/conf/mods-available/fp10.x-biserver.conf в ALT Linux.
<VirtualHost
*:8810>
...
SSLVerifyClient require
SSLVerifyDepth 10
SSLCACertificateFile <путь
до папки>/ca.cer
...
</VirtualHost>
В подстановке <путь до папки> укажите папку, в которой расположен корневой сертификат.
После выполнения действий будет настроен BI-сервер.
Для настройки веб-сервера IIS, на котором установлен BI-сервер, в ОС Windows откройте диспетчер служб IIS и выполните действия:
Откройте функцию
«Параметры SSL»
в разделе «IIS»
двойным щелчком мыши или с помощью команды контекстного
меню «Открытие функции».
Установите флажок «Требовать SSL» и переключатель «Требовать» для сертификатов клиента.
После выполнения действий для подключения к веб-сервису будет использоваться протокол HTTPS. Авторизация пользователей будет выполняться по клиентским сертификатам.
Для внешнего сервиса добавьте подраздел с наименованием сервиса в ветке реестра [HKLM\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\PP\BIS\System\ExtService\<наименование сервиса>] или в соответствующем разделе файла settings.xml. Задайте следующие настройки:
Type. Тип внешнего сервиса. В качестве значения укажите - HttpHeaders;
AuthUrl. URL-адрес страницы аутентификации внешнего сервиса. Параметр AuthUrl может не указываться, если внешний сервис не имеет собственной страницы аутентификации. Например, осуществлена доработка внутренних скриптов для аутентификации пользователя на странице авторизации веб-приложения. Если параметр AuthUrl не указан, то после нажатия кнопки Вход и успешной аутентификации пользователя будет осуществлён переход в навигатор объектов. При нажатии кнопки Выход переход осуществляется на страницу авторизации веб-приложения;
UserIdAttr. Наименование атрибута в HTTP-заголовках, который будет содержать уникальный идентификатор пользователя;
UserNameAttr. Наименование атрибута в HTTP-заголовках, который будет содержать отображаемое имя пользователя. Значение атрибута будет применяться только для временных пользователей;
UserRolesAttr. Наименование атрибута в заголовках, который будет содержать список групп пользователей для временного добавления пользователя в полученные группы. Используется, если учётная запись пользователя не создана в менеджере безопасности, а требуемые группы пользователей созданы в нём. Если параметр UserRolesAttr не указан, то временный пользователь добавляется во встроенную группу ПОЛЬЗОВТЕЛИ;
Важно. В списке групп пользователей не допускается указание встроенной группы АДМИНИСТРАТОРЫ. Если данная группа имеется в списке, то при подключении будет сгенерирована исключительная ситуация.
CertificateHash. Цифровой отпечаток сертификата прокси-cервера, который устанавливает соединение с Bi-сервером и дополняет запросы HTTP-заголовками. Доверие Bi-сервера к прокси-серверу обеспечивается путём сравнения цифрового отпечатка сертификата, указанного в параметре, и цифрового отпечатка сертификата, пришедшего от прокси-сервера при установке mTLS соединения с Bi-сервером.
Значение, указываемое в параметре CertificateHash, необходимо сформировать после выпуска сертификата, используемого для организации mTLS-соединения с внешним сервисом.
UPN. Наименование атрибута в HTTP-заголовках, который будет содержать имя пользователя в формате UPN;
Email. Наименование атрибута в HTTP-заголовках, который будет содержать почту пользователя. Например, наименование атрибута «mail» или путь «/path/to/mail».
Для установки сессионных значений глобальных переменных после успешного подключения к репозиторию может быть создан подраздел с именем AdditionalAttributes в описании настроек внешнего сервиса. Наименование каждого дочернего элемента этого подраздела должно совпадать с наименованием атрибута в HTTP-заголовках, значение которого будет установлено глобальной переменной. Дочерний элемент может содержать параметр IdVariable, в котором указывается идентификатор глобальной переменной репозитория. Если параметр IdVariable не указан, то будет осуществляться поиск глобальной переменной с идентификатором, равным наименованию атрибута в верхнем регистре.
Пример заполнения параметров представлен в разделе System для файла settings.xml.
Для настройки подключения к репозиторию используйте файл Metabases.xml, добавьте атрибут Authentication со значением «8» и заполните раздел ExtService с атрибутом Provider. В качестве значения атрибута укажите наименование подраздела, созданного для внешнего сервиса на шаге 3.
Пример файла Metabases.xml:
<PP>
<Metabases>
<REPOSITORY_HTTP Name="REPOSITORY_HTTP" Authentication="8" Driver="POSTGRES" Package="STANDARDSECURITYPACKAGE">
<ExtService Provider="HTTP_PROVIDER"/>
</REPOSITORY_HTTP>
</Metabases>
</PP>
Альтернативным способом настройки подключения к репозиторию является добавление аналогичных параметров в раздел реестра:
[HKEY_CURRENT_USER\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\Metabases\<идентификатор репозитория>] - настройки конкретного репозитория для текущего пользователя, не зависимо от разрядности системы;
[HKEY_LOCAL_MACHINE\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\Metabases\<идентификатор репозитория>] - настройки конкретного репозитория в случае, когда разрядность «Форсайт. Аналитическая платформа» совпадает с разрядностью операционной системы. Для всех пользователей.
После внесения всех изменений перезапустите BI-сервер.
Работа веб-приложения должна осуществляться по протоколу HTTPS. Внешний сервис после аутентификации пользователя должен осуществить переход на страницу веб-приложения по ссылке вида:
https://<адрес веб-приложения>/fp10.x/r/#/app/navigator?repo=<идентификатор репозитория>
Доступен переход по ссылке в навигатор объектов или открытие объекта репозитория. Ссылка должна содержать параметр repo c указанием идентификатора репозитория.
Веб-приложение перенаправляет запросы на прокси-сервер. На прокси-сервере осуществляется дополнение запросов HTTP-заголовками с информацией о пользователе. Дополненный запрос отправляется на BI-сервер. BI-сервер проверяет цифровой отпечаток сертификата прокси-сервера, извлекает информацию о пользователе из HTTP-заголовков, открывает соединение с репозиторием. После открытия соединения с репозиторием отобразится страница веб-приложения, на которую было произведено перенаправление пользователя.
См. также:
Аутентификация в продукте | Настройка аутентификации через внешние сервисы