Настройка входа через SAML

Для настройки авторизации с использованием SAML необходимо выполнить следующие действия:

1. Установите BI-сервер и серверную часть веб-приложения.

2. Настройте репозиторий платформы:

2.1. Чтобы сохранить зашифрованный пароль для входа в репозиторий запустите утилиту PP.Util.exe из-под соответствующей учетной записи (под которой работает пул веб-приложения) со следующими параметрами - «/save_creds “имя репозитория” /dc “имя пользователя”». Утилита расположена в папке с установленным «Форсайт. Аналитическая платформа». После успешного запуска будет запрошен пароль для входа в репозиторий. Введите пароль. После этого будет выведено сообщение «Password for metabase “имя репозитория” and login “имя пользователя” saved».

2.2 Сохраните сертификат в репозиторий:

PP.Util.exe /save_cert "путь до сертификата" <ID репозитория> <имя пользователя>

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

Certificate from file "путь до сертификата" with identifier "ID сертификата" saved to metabase "ID репозитория"

2.3 Сохраните закрытый ключ в реестре:

PP.Util.exe /save_private_key "путь до файла ключа" <ID сертификата> <алгоритм шифрования := gos|pro, если не указан, то pro>

После этого будет выведено сообщение:

Certificate from file "путь до ключа" with identifier "ID сертификата" saved

3. В файле PP.xml в разделе <metabase>:

3.1 В атрибуте authentication установите значение SAML2.

3.2 В атрибуте samlUrl укажите URL-адрес поставщика идентификации по протоколу SAML 2.0.

4. Настройте BI-сервера:

4.1. Замените файл idp.xml, расположенный по пути <путь до папки с установленным продуктом «Форсайт. Аналитическая платформа»>/etc/shibboleth/, на одноименный файл с необходимыми настройками. Файл настроек нужно запросить у администратора SSO сервера.

4.2. В файле shibboleth2.xml укажите значение атрибута entityId элемента <SSO> равным значению атрибута entityId элемента <EntityDescriptor> из файла idp.xml. Файлы idp.xml и shibboleth2.xml расположены в одной папке.

4.3. Сгенерируйте метаданные:

В файле <путь до папки с установленным продуктом «Форсайт. Аналитическая платформа»>/ etc/shibboleth/example-sp.xml в качестве значения для атрибута Location элемента <AssertionConsumerService> установите URL страницы веб-приложения, на которой будет осуществляться вход через SAML 2.0.

Пример URL ниже выделен красным:

<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://test/fp_App_v9.2/app/PPService.axd?action=saml" index="0" isDefault="true"/>

Где:

test. Наименование рабочей станции, на которой установлено веб-приложение;

fp_App_v9.2. Наименование виртуального каталога, в котором расположено веб-приложение.

Убедитесь, что уникальное имя пользователя для регистрации на SSO сервере совпадает в 2 файлах:

shibboleth2.xml (значение атрибута entityId элемента <ApplicationDefaults>);

example-sp.xml (значение атрибута entityId элемента <EntityDescriptor>).

Идентификатор пользователя на сервере должен быть уникальным.

4.4. Передайте метаданные «Форсайт. Аналитическая платформа», сгенерированные в файле example-sp.xml (см. п. 4.3), администратору SSO веб-сервера для регистрации.

4.5. Внесите изменения в файлы shibboleth2.xml и Protocols.xml:

в shibboleth2.xml для атрибута handlerUrl элемента <Sessions> укажите значение "/fp_App_v9.2/app", где fp_App_v9.2 -наименование виртуального каталога, в котором расположено веб-приложение;

в Protocols.xml укажите значение "PPService.axd?action=saml"для атрибута path элемента <Binding> с идентификатором "...HTTP-POST" сервиса с id="SSO". Ниже выделено красным то, что нужно заменить:

<Service id="SSO">

      <Initiator id="SAML2" />

      <Binding id="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" path="/PPService.axd?action=saml"/>

      <Binding id="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" path="/SAML2/Artifact" />

      <Binding id="urn:oasis:names:tc:SAML:2.0:bindings:PAOS" path="/SAML2/ECP" />

</Service>

Для проверки убедитесь, что:

http://test + атрибут handlerUrl элемента <Sessions> + атрибут path элемента <Binding>  = атрибут Location элемента <AssertionConsumerService> (см. п. 4.3)

То есть:

http://test + /fp_App_v9.2/app + /PPService.axd?action=saml = http://test/fp_App_v9.2/app/PPService.axd?action=saml

4.6. При необходимости перегенерируйте сертификат sp-cert.pem и закрытый ключ sp-key.pem. Сертификат в этом случае нужно также вставить два раза в example-sp.xml.

5. Откройте веб-приложение, при этом произойдет переход к поставщику идентификации. Введите имя пользователя и пароль.

См. также:

Вопросы и ответы | Настройка входа в через OAuth