Для настройки авторизации с использованием 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. Откройте веб-приложение, при этом произойдет переход к поставщику идентификации. Введите имя пользователя и пароль.
См. также: