Реализация 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.