Для настройки авторизации с использованием SAML необходимо выполнить следующие действия:
1. Установите BI-сервер и веб-приложение.
2. Настройте репозиторий Prognoz Platform 8:
2.1. Чтобы сохранить зашифрованный пароль для входа в репозиторий запустите утилиту PP.Util.exe из-под соответствующей учетной записи (под которой работает пул веб-приложения) со следующими параметрами - «/save_creds “имя репозитория” /dc “имя пользователя”». Утилита расположена в папке с установленным Prognoz Platform 8. После успешного запуска будет запрошен пароль для входа в репозиторий. Введите пароль. После этого будет выведено сообщение «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 установите значение "SAML2" для атрибута authentication элемента <metabase>.
4. Настройте BI-сервера:
4.1. Замените файл idp.xml, расположенный по пути <путь до папки с установленным Prognoz Platform 8>/etc/shibboleth/, на одноименный файл с необходимыми настройками. Файл настроек нужно запросить у администратора SSO сервера.
4.2. В файле shibboleth2.xml укажите значение атрибута entityId элемента <SSO> равным значению атрибута entityId элемента <EntityDescriptor> из файла idp.xml. Файлы idp.xml и shibboleth2.xml расположены в одной папке.
4.3. Сгенерируйте метаданные:
В файле <путь до папки с установленным Prognoz Platform 8>/ etc/shibboleth/prognoz_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/PP_App_v8.2/app/PPService.axd?action=saml" index="0" isDefault="true"/>
Где:
test. Наименование рабочей станции, на которой установлено веб-приложение;
PP_App_v8.2. Наименование виртуального каталога, в котором расположено веб-приложение.
Убедитесь, что уникальное имя пользователя для регистрации на SSO сервере совпадает в 2 файлах:
shibboleth2.xml (значение атрибута entityId элемента <ApplicationDefaults>);
prognoz_sp.xml (значение атрибута entityId элемента <EntityDescriptor>).
Идентификатор пользователя на сервере должен быть уникальным.
4.4. Передайте метаданные Prognoz Platform 8, сгенерированные в файле prognoz_sp.xml (см. п. 4.3), администратору SSO веб-сервера для регистрации.
4.5. Внесите изменения в файлы shibboleth2.xml и Protocols.xml:
в shibboleth2.xml для атрибута handlerUrl элемента <Sessions> укажите значение "/PP_App_v8.2/app", где PP_App_v8.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 + /PP_App_v8.2/app + /PPService.axd?action=saml = http://test/PP_App_v8.2/app/PPService.axd?action=saml
4.6. При необходимости перегенерируйте сертификат sp-cert.pem и закрытый ключ sp-key.pem. Сертификат в этом случае нужно также вставить два раза в prognoz_sp.xml.
5. Откройте веб-приложение. Произойдет переход к провайдеру идентификации. Введите имя пользователя и пароль в провайдере идентификации.
См. также:
Вопросы и ответы | Настройка входа в Prognoz Platform 8 через OAuth