Информация о состоянии SimpleSAMLphp

У меня есть сервис-провайдер, настроенный на https://biz.dev.originsystems.co.za. У меня есть IdP, настроенный на http://stage.originsystems.co.za.

При проверке подлинности с помощью инструмента https://biz.dev.originsystems.co.za/simplesaml/module.php/core/authenticate.php все работает нормально. Он возвращается к сайту Dev с необходимыми атрибутами, и все счастливы и радостны.

Однако, когда я пытаюсь на самом деле нажать IdP в коде https://biz.dev.originsystems.co.za, я перенаправлен на страницу журнала Stage, но после входа в систему я получаю сообщение об ошибке "State information lost". Я получаю следующую информацию об отладке:

SimpleSAML_Error_NoState: NOSTATE

Backtrace:
2 /webdevroot/Updraft/web/external/System/SSO/simplesaml/lib/SimpleSAML/Auth/State.php:225 (SimpleSAML_Auth_State::loadState)
1 /webdevroot/Updraft/web/external/System/SSO/simplesaml/modules/saml/www/sp/saml2-acs.php:63 (require)
0 /webdevroot/Updraft/web/external/System/SSO/simplesaml/www/module.php:134 (N/A)

Я выполнил все проблемы с поиском, которые мне задали, но ситуация сохраняется.

Я открыл инструменты разработчика в браузере и просмотрел информацию о файлах cookie. Файлы cookie для biz.dev.originsystems.co.za включают SimpleAMLAuthToken, поэтому я считаю, что файлы cookie работают. Код, который я использую, чтобы попасть в IdP:

$as = new SimpleSAML_Auth_Simple("stage-sso-sp");
$as->requireAuth();
$attributes = $as->getAttributes();
print_r($attributes);

UPDATE:

Вот еще информация...

Я хотел определить, была ли проблема с настройкой IdP, поэтому я начал использовать SSO Circle для IdP. Государственная информация теряется после аутентификации в SSO Circle. Я думаю, это означает, что проблема находится где-то с моей настройкой поставщика услуг для SimpleSAML. Вот что происходит...

Когда я перехожу на страницу Истории проверки подлинности SimpleSAML в https://biz.stage.originsystems.co.za/simplesaml У меня следующие значения cookie...

Name                                       Value
SimpleSAMLAuthToken                        _a53569c0701dd02832532df14cf10cd0b2d9fcd6b6
biz.stage.originsystems.co.za              10fc356e0bfbf707af5fa5854c378755
ccof                                       RGN002
xbrF                                       84aadc624fc51c0c9340d45645c08643

Все, кроме SimpleSAMLAuthToken, принадлежит нашему приложению и не должно влиять на SimpleSAML. Как только я перенаправлен на SSO Circle и аутентифицирован, я вернусь на мою страницу SimpleSAML, и Auth Token теперь имеет значение _39679e07cb1911e08b2bff3580a9929faddd07e9b6, и вся соответствующая информация возвращается правильно. В файле журнала отображается следующее действие.

Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Received SAML2 Response from 'http://idp.ssocircle.com'.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] No certificate in message when validating against fingerprint.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Found 1 certificates in SAML2_Assertion
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Has 1 candidate keys for validation.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Validation with key #0 succeeded.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Filter config for http://idp.ssocircle.com->https://biz.stage.originsystems.co.za/simplesaml/module.php/saml/sp/metadata.php/default-sp: array (  0 =>   sspmod_core_Auth_Process_LanguageAdaptor::__set_state(array(     'langattr' => 'preferredLanguage',     'priority' => 90,  )),)
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Deleting state: '_742b094314383407864f56bccc6afd7de3dcb3211e'
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Session: doLogin("default-sp")
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Session: Valid session found with 'default-sp'.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Session: Valid session found with 'default-sp'.
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/dictionaries/status]
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/dictionaries/attributes]
Feb 02 12:58:22 simplesamlphp DEBUG [7c4534ae0a] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/modules/core/dictionaries/frontpage]

Если я перейду к https://biz.stage.originsystems.co.za?ccof=RGN002, я перенаправлен, так как я ожидаю, что буду в SSO Circle, где затем аутентифицирую. В это время мой Autth Token имеет значение _39679e07cb1911e08b2bff3580a9929faddd07e9b6. После проверки подлинности я направляюсь на страницу ошибок SimpleSAML "State Information Lost", а Auth Token все еще _39679e07cb1911e08b2bff3580a9929faddd07e9b6.

Журнал читает...

Feb 02 13:08:31 simplesamlphp DEBUG [8abc64dd04] Loading state: '_498e7d4d75bb7716e5e8cf905e0da5ef1c40cf1b3f'
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] SimpleSAML_Error_NoState: NOSTATE
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] Backtrace:
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] 2 /OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/lib/SimpleSAML/Auth/State.php:225 (SimpleSAML_Auth_State::loadState)
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] 1 /OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/modules/saml/www/sp/saml2-acs.php:63 (require)
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] 0 /OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/www/module.php:134 (N/A)
Feb 02 13:08:31 simplesamlphp ERROR [8abc64dd04] Error report with id dfbb52b0 generated.
Feb 02 13:08:31 simplesamlphp DEBUG [8abc64dd04] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/dictionaries/errors]
Feb 02 13:08:31 simplesamlphp DEBUG [8abc64dd04] Template: Reading [/OriginSystems/application/Updraft/web/external/System/SSO/simplesaml/modules/core/dictionaries/no_state]

Мне кажется, что токен Auth должен быть _498e7d4d75bb7716e5e8cf905e0da5ef1c40cf1b3f, но не по какой-то причине. Поскольку SimpleSAML не может найти этот токен, он никогда не удаляет старый и не создает новый. Возможно, я ошибаюсь. Я совершенно согласен, чтобы меня исправили. Моя проблема в том, что я не знаю, что вызывает это. Я установил файл cookie.name в файле конфигурации на "biz.stage.originsystems.co.za" и, похоже, отлично работает для панели управления SimpleSAML, но не работает при использовании SP из реального приложения. Может ли кто-нибудь указать мне в правильном направлении? Я потерян.

Ответ 1

вам нужно будет определить две совершенно независимые среды, чтобы работать над смешиванием этих двух сред (которые имеют два совершенно разных поставщика удостоверений), как вы его описываете (что, очевидно, не работает, если не добавить оба их в конфигурацию SSO, что, вероятно, не может быть желательным результатом); просто проверить имя хоста сервера и определить соответствующие переменные - это можно сделать либо "на лету", либо, возможно, двумя разными конфигурационными файлами (на самом деле это довольно распространено для push файлов в конце развертывания). для меня это звучит гораздо более похоже на проблему развертывания (без надлежащего конфигурационного файла для живого сайта), чем проблема с SSO.