У меня есть сервис-провайдер, настроенный на 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 из реального приложения. Может ли кто-нибудь указать мне в правильном направлении? Я потерян.