Реализация SSO при помощи SAP Logon Ticket
SSO портал Кортеос поддерживает аутентификацию через SAP Logon Ticket, для этого необходимо выполнить следующие предварительные условия:
Для клиента необходимо завести справочник структурных кодов SAPID, в котором будет содержаться служебный идентификатор пользователя в SAP, данный справочник нужно привязать ко всем компаниям клиента
Произвести настройки на SSO портале Кортеос
Настройки портала для SAP Logon ticket выглядят таким образом:
Для настроек необходимо предварительно получить следующие данные от администратора SAP:
PSE Certificate - сертификат, который используется для дешифровки тикета, может быть защищен паролем, который следует указать в поле Password. Сертификат необходимо закодировать в base64, для этого можно использовать любой онлайн сервис, например, такой - https://base64.guru/converter/encode/file
SAP_EXT_TRL - уровень детализации логгирования, ставим 3 для максимально подробного лога
SAP_EXT_SYSID
SAP_EXT_CLIENT
Верификация тикета производится при помощи программы ssoext, которая доступно в маркетплейс SAP:
Механизм формирования консольной команды для запуска:
string cmd = $"-ticket {MySAPsso2} -pse {settings.PSECertificate} -t grp_{id_Group}.log -l 3 -options SAP_EXT_TRL={settings.SAP_EXT_TRL}/SAP_EXT_SYSID={settings.SAP_EXT_SYSID}/SAP_EXT_CLIENT={settings.SAP_EXT_CLIENT}";
if (settings.Password.HasValue())
cmd += $" -pwd {settings.Password}";
Рекомендуется протестировать настройки при помощи данного приложения локально и добиться расшифровки mysapsso2 перед настройкой портала
Из тикета извлекается значение User, которое должно быть присвоено в качестве структурного кода тому пользователю, который будет авторизован в системе Кортеос
При создании пользователей на лету, необходимо создать/обновить данные пользователя в системе при помощи запроса Set веб-сервиса SSO-портала: https://prd.sso.corteos.ru/Documentation/GeneralWebService, для того, чтобы обеспечить его гарантированный вход в систему, в качестве основного идентификационного критерия используется значение поля User.
Для тестирования SSO можно использовать следующую форму(доступна после настройки SSO): https://prd.sso.corteos.ru/SAPAuth/Demo
Все данные передаются вместе при помощи браузерного HTTP POST на адрес /SAPAuth SSO портала, ниже описан набор передаваемых данных:
mysapsso2 - sap logon ticket
id_Group - константа, присваивается администратором Кортеос и не меняется во времени
requestID - CorteosId из ответа веб-сервиса Set.