Информация о состоянии потеряна в SimpleSamlphp

Я получил сообщение об ошибке Потеря информации о состоянии «Информация о состоянии потеряна» в SimpleSamlphp. Используйте sprint-security в качестве SP и настройте Idp на Simplesamlphp. Затем браузер может перенаправить веб-страницу SP на Idp, но после входа в систему с именем пользователя и паролем я получил сообщение об ошибке «Информация о состоянии потеряна». ```

Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] array (
  'id' => 'a3a41e7aia439d7371j5e742e35jhi',
  'url' => NULL,
)
Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] Ron====sid===end
Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] NULL
Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] Ron====url===end
Apr 19 08:52:28 simplesamlphp DEBUG [bc5df4b2c1] Ron====state:NULL
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] SimpleSAML_Error_NoState: NOSTATE
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] Backtrace:
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] 2 /var/simplesamlphp/lib/SimpleSAML/Auth/State.php:274 (SimpleSAML_Auth_State::loadState)
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] 1 /var/simplesamlphp/modules/saml/www/sp/saml2-acs.php:91 (require)
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] 0 /var/simplesamlphp/www/module.php:137 (N/A)
Apr 19 08:52:28 simplesamlphp ERROR [bc5df4b2c1] Error report with id f9c150bb generated.

``` Я обнаружил, что stateID был отправлен SP. А затем на стороне Idp теперь журналы показывают, что сеансы содержат два действительных файла cookie для phpsession и authtoken. Но оба этих идентификатора не могут совпадать с «RequestId» или «InResponseTo» в ответе. Я просто застрял здесь. Как это происходит? Кто-нибудь может помочь? Заранее спасибо.


person Ron    schedule 19.04.2017    source источник


Ответы (1)


Я обнаружил, что логика php соответствовала php-скриптам SP в моем случае, и более очевидным было то, что когда я вручную изменил «stateId», я получил такую ​​​​ошибку: SimpleSAML_Error_Exception: This SP [https://domainname/simplesaml/module.php/saml/sp/metadata.php/default-sp] не является допустимой аудиторией для утверждения. Кандидатами были: [com:vdenotaris:spring:sp]

что это очень странно и вне моих ожиданий. Затем я проверил файл «metadata/saml20-sp-remote.php», который, согласно документации SimpleSAMLphp, предназначен для добавления метаданных SP в конфигурацию Idp, чтобы сообщить об этом. Наконец, я обнаружил, что заполнил здесь неправильные метаданные SP. Это пойдет не так, если это так:

$metadata['com:vdenotaris:spring:sp'] = array(
        'AssertionConsumerService' => 'https://domainname/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
        'SingleLogoutService' => 'https://domainname/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
);

Службам AssertionConsumerService и SingleLogoutService должны быть назначены URL-адреса в вашем SP, поскольку они являются службами в SP. Так должно быть так:

$metadata['com:vdenotaris:spring:sp'] = array(
        'AssertionConsumerService' => 'https://SPonRonSever:8443/prj/saml/SSO',
        'SingleLogoutService' => 'https://SPonRonSever:8443/prj/saml/SingleLogout',
);

Затем, когда вы вводите "https://SPonRonSever:8443/prj" в адресной строке браузера, может перейти на страницу входа, предоставленную Idp, после аутентификации вы сможете получить доступ к нужной веб-странице.

person Ron    schedule 20.04.2017