В этой статье:

Шаг 1. Сохранение технологической учётной записи для подключения к СУБД

Шаг 2. Настройка параметров для протокола OAuth/OpenID Connect

Шаг 3. Подготовка BI-сервера

Шаг 4. Подготовка и открытие веб-приложения

Расширенная схема взаимодействия веб-приложения с внешним сервисом

OAuth 2.0 или OpenID Connect

Для авторизации пользователей при подключении к репозиторию в веб-приложении доступно использование протокола OAuth 2.0 или OpenID Connect. Аутентификация пользователя производится под учётной записью сервисов, поддерживающих данный протокол.

Если учётная запись пользователя внешнего сервиса содержится в менеджере безопасности, то будет выполнено подключение к репозиторию и вход в навигатор объектов под этим пользователем.

Если учётная запись пользователя внешнего сервиса не содержится в менеджере безопасности, то будет создан временный пользователь и добавлен в группы из списка атрибута, указанного в userinfo. Если атрибут не задан, то временный пользователь добавляется во встроенную группу ПОЛЬЗОВАТЕЛИ.

Подключение к СУБД производится под технологической учётной записью.

При необходимости ознакомьтесь с расширенной схемой взаимодействия веб-приложения с внешним сервисом.

Шаг 1. Сохранение технологической учётной записи для подключения к СУБД

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

Для настройки подключения к репозиторию:

  1. Запустите приложение PP.Util, расположенное в папке установки продукта «Форсайт. Аналитическая платформа», с помощью командной строки от имени администратора. Ниже приведены команды для настройки подключения к репозиторию. Вместо PP.Util используйте PP.Util_start.sh для выполнения команды в ОС Linux, PP.Util.exe для ОС Windows.

Примечание. В ОС Linux при сохранении зашифрованного пароля технологической учётной записи запрашивается единица лицензирования AnalyticsPlatform. Ознакомьтесь со способами указания системной переменной LSFORCEHOST или LSHOST перед выполнением PP.Util_start.sh.

  1. Сохраните зашифрованный пароль технологической учётной записи для подключения к СУБД:

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 могут быть добавлены в менеджере безопасности, а могут быть временными пользователями.

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

При подключении к репозиторию происходит поиск сохранённой технологической учётной записи для подключения к СУБД:

Примечание. При входе в систему выполняется проверка имени пользователя, полученного от внешнего сервиса с учётом формата, заданного в параметре PPUserNameFormat.

После выполнения действий будет настроено подключение к репозиторию.

Шаг 2. Настройка параметров для протокола OAuth/OpenID Connect

При аутентификации через внешние сервисы должно быть настроено соединение между клиентом и BI-сервером по протоколу HTTPS. По умолчанию выполняется проверка параметра state для защиты от потенциальных атак типа CSRF при получении кода авторизации. Если соединение между клиентом и BI-сервером настроено по протоколу HTTP, то создайте параметр StateCheckOff со значением «1» в разделе реестра [HKLM\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\PP\BIS\System\OAuth] или в соответствующем разделе файла settings.xml для отключения проверки.

Для протокола OAuth или OpenID Connect добавьте подразделы с наименованиями сервисов и задайте соответствующие настройки реестра в разделе [HKLM\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\PP\BIS\System\OAuth\<наименование сервиса>] или в соответствующем разделе файла settings.xml со следующими параметрами:

Важно. В списке групп пользователей не допускается указание встроенной группы АДМИНИСТРАТОРЫ. Если данная группа имеется в списке, то при подключении будет сгенерирована исключительная ситуация.

При настройке подключения к репозиторию под конкретным пользователем, который проходил авторизацию на внешнем сервисе, значения в параметрах UserIdAttr и UserNameAttr могут совпадать.

Уникальный идентификатор и имя пользователя, полученные при работе с внешним сервисом с помощью параметров UserIdAttr и UserNameAttr, записываются:

Значения, указываемые в параметрах ConsumerKey и ConsumerSecret, будут получены после регистрации разрабатываемого приложения на необходимом сервере аутентификации OAuth/OpenID Connect. Данные параметры необходимы, чтобы после авторизации на сервере аутентификации OAuth/OpenID Connect BI-сервер смог проверить и авторизовать соответствующего пользователя в репозитории.

Если параметры ConsumerKey и ConsumerSecret не указаны, то используются внутренние настройки BI-сервера, при этом на сервере аутентификации OAuth/OpenID Connect должно быть зарегистрировано приложение на базе веб-приложения «Форсайт. Аналитическая платформа».

Пример заполнения параметров представлен в разделе System для файла settings.xml.

Примечание. Для конструктора бизнес-приложений можно настроить автоматическую переадресацию на авторизацию пользователей через протокол OAuth/OpenID Connect при входе в веб-приложение. Для этого в файле DBA.config.json задайте значение «OAuth» в поле authentication и укажите сервисы авторизации, заданные при настройке параметров для протокола OAuth или OpenID Connect, в поле allowOauthProviders.

Шаг 3. Подготовка BI-сервера

Взаимодействие BI-сервера с внешними сервисами осуществляется через стороннюю библиотеку libcurl. С её назначением, возможностями и ограничениями можно ознакомиться на официальном сайте https://curl.haxx.se/libcurl/. Работа BI-сервера должна осуществляться по протоколу HTTPS.

Для подготовки BI-сервера проверьте наличие сети Интернет на сервере, где установлен BI-сервер, и убедитесь, что доступ к сайтам сервисов открыт.

Если интернет-соединение осуществляется через прокси-сервер, то создайте системные переменные:

В ОС Linux переменные окружения содержатся в файле /opt/foresight/fp10.x-biserver/etc/envvars и добавляются в формате: <имя переменной>=<значение>.

Переменные окружения считываются при старте BI-сервера с экземпляром Apache2. Для получения подробной информации о добавлении переменных окружения в ОС Linux обратитесь к разделу «Конфигурация и настройка».

Примечание. При необходимости для отслеживания выполняемых действий и получения отладочной информации создайте переменные окружения PP_LOG и CURLOPT_VERBOSE со значением «1».

Если внешний сервис доступен по протоколу HTTPS, то скопируйте корневой сертификат *.crt, с помощью которого был подписан сертификат безопасности внешнего сервиса, на BI-сервер и выполните следующие действия:

sudo mkdir /usr/share/ca-certificates/fp-extra-certs
sudo cp <путь до папки>/<наименование сертификата>.crt /usr/share/ca-certificates/fp-extra-certs/fp-extra-ca.crt

После выполнения действий будет создана папка /usr/share/ca-certificates/fp-extra-certs с корневым сертификатом внешнего сервиса fp-extra-ca.crt.

fp-extra-certs/fp-extra-ca.crt

    1. Примените изменение конфигурации:

sudo update-ca-certificates -v

    1. Дважды щёлкните по корневому сертификату *.crt. После чего будет открыто окно «Сертификат».

    2. Нажмите кнопку «Установить сертификат». После чего будет открыт мастер импорта сертификатов.

    3. Выберите расположение хранилища «Текущий пользователь» и нажмите кнопку «Далее».

    4. Установите переключатель «Поместить все сертификаты в следующее хранилище», выберите хранилище сертификатов «Доверенные корневые центры сертификации» и нажмите кнопку «Далее».

После выполнения действий корневой сертификат будет импортирован в хранилище доверенных корневых центров сертификации.

Шаг 4. Подготовка и открытие веб-приложения

Работа веб-приложения должна осуществляться по протоколу HTTPS. Для подготовки веб-приложения используйте файл Metabases.xml, добавьте атрибут Authentication со значением «7» и заполните раздел OAuthService с атрибутами:

Если в качестве значения атрибута используется сервис, который не содержится в атрибуте Providers, то автоматическая переадресация выполняться не будет;

Пример файла Metabases.xml:

<PP>
    <Metabases>
        <REPOSITORY_ID Name="REPOSITORY_ID" Authentication="7" Package="STANDARDSECURITYPACKAGE">
            <OAuthService AutoStartProvider="0" Providers="Google"/>
            <LogonData DATABASE="DATABASE_NAME" CASESENSITIVE="true" SERVER="SERVER_DATABASE"/>
        </REPOSITORY_ID>
    </Metabases>
</PP>

Альтернативным способом подготовки веб-приложения является добавление аналогичных параметров в раздел реестра:

После изменений перезапустите BI-сервер и откройте веб-приложение. В окне регистрации будут доступны кнопки авторизации для входа в систему с использованием протокола OAuth или OpenID Connect:

Выберите репозиторий и нажмите кнопку одного из сервисов авторизации. После чего будет осуществлен переход на страницу учётной записи соответствующего сервиса, например, Google. Введите имя пользователя и пароль на странице сервиса. При успешной авторизации в веб-приложении будет открыт навигатор объектов.

Расширенная схема взаимодействия веб-приложения с внешним сервисом

Схема взаимодействия веб-приложения с внешним сервисом:

  1. Пользователь выбирает репозиторий, настроенный на работу с внешним сервисом:

BI-сервер обрабатывает запрос на передачу настроек внешних сервисов и отображения соответствующих кнопок в окне регистрации.

  1. Пользователь нажимает кнопку соответствующего внешнего сервиса в окне регистрации и переходит на страницу авторизации. Вводит логин и пароль.

При успешной аутентификации происходит перенаправление пользователя в веб-приложение и клиент получает код подтверждения авторизации.

  1. Клиент отправляет запрос BI-серверу на получение токена авторизации внешнего сервиса. В запросе передаётся код подтверждения авторизации и адрес веб-приложения.

  2. BI-сервер отправляет запрос внешнему сервису на получение токена авторизации. Запрос выполняется через адрес сервиса авторизации, указанный в параметре RequestTokenUrl. Внешний сервис обрабатывает запрос по коду подтверждения авторизации и возвращает данные:

Полученные данные определяют текущее состояние авторизации. В качестве хранилища состояний авторизации используется:

  1. BI-сервер создаёт в хранилище уникальный ключ текущего состояния авторизации и передаёт его на клиент. Клиент отправляет запрос BI-серверу на подключение к репозиторию. В запросе передаётся уникальный ключ текущего состояния авторизации.

  2. BI-сервер отправляет запрос внешнему сервису на получение данных авторизованного пользователя. Внешний сервис обрабатывает запрос по значению параметра UserDataUrl и возвращает информацию о пользователе, в том числе имя пользователя, которое будет отображаться в навигаторе объектов и менеджере безопасности.

  3. BI-сервер обращается к СУБД, используя предварительно сохранённую технологическую учётную запись.

  4. BI-сервер возвращает на клиент моникёр сессии. Происходит перенаправление пользователя в навигатор объектов.

См. также:

Аутентификация в продукте | Настройка аутентификации через внешние сервисы