После просмотра всего Интернета, особенно
Я перепробовал все предложенные модификации в authsource.php и метаданных php. Ничего не получалось.
Вот мой authsource.php
'default-sp' => array(
'saml:SP',
'privatekey' => 'saml.pem',
'certificate' => 'saml.crt',
'idp' => 'http://domain.com/adfs/services/trust',
Я использовал XML to simpleSAMLphp metadata converter
генерировать saml20-idp-remote.php
Поэтому, когда я захожу на страницу, SimpleSAMLPHP правильно перенаправляет меня на страницу входа в систему IDP. Я расшифровал запрос SAML:
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"ID="_4e03333c7aa76314d965e05f8fcdd3e1f4c5be96c8"Version="2.0"IssueInstant="2014-12-11T19:41:50Z"Destination="https://domain.com/adfs/ls/"AssertionConsumerServiceURL="https://sub.domain.com/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp"ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST">
<saml:Issuer>
https://su.bdomain.com/simplesaml/module.php/saml/sp/metadata.php/default-sp
</saml:Issuer>
<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" AllowCreate="true"/>
</samlp:AuthnRequest>
После входа в систему с действительной тестовой учетной записью, я возвращаюсь на свой сайт с ошибкой.
SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
0 /var/www/html/igt_s3k/web/simplesamlphp/www/module.php:179 (N/A)
Caused by: sspmod_saml_Error: Requester/InvalidNameIDPolicy
Backtrace:
3 /var/www/html/igt_s3k/web/simplesamlphp/modules/saml/lib/Message.php:385 (sspmod_saml_Message::getResponseError)
2 /var/www/html/igt_s3k/web/simplesamlphp/modules/saml/lib/Message.php:495 (sspmod_saml_Message::processResponse)
1 /var/www/html/igt_s3k/web/simplesamlphp/modules/saml/www/sp/saml2-acs.php:96 (require)
0 /var/www/html/igt_s3k/web/simplesamlphp/www/module.php:134 (N/A)
Я пытался установить разные NameIDPolicy, но ни один из них не работал.
//'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
//'NameIDPolicy' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
//'NameIDPolicy' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',
//'NameIDPolicy' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
Спасибо!
Да уж. В порыве гнева и разочарования. Я установил NameIDPolicy на ноль, и все работает. FML
'default-sp' => array(
'saml:SP',
'privatekey' => 'saml.pem',
'certificate' => 'saml.crt',
'idp' => 'http://comain.com/adfs/services/trust',
'NameIDPolicy' => null,
В соответствии с http://social.technet.microsoft.com/wiki/contents/articles/4038.ad-fs-2-0-how-to-request-a-specific-name-id-format-from-a-claims- поставщик-ф-во-SAML-2-0-сингл-знаковой-на-sso.aspx
вы должны использовать значение по умолчанию не указано
‘NameIDPolicy’ => ‘urn: oasis: names: tc: SAML: 1.1: nameid-format: unspecified’,
Начиная с SimpleSAML v1.15.0, принятый ответ не поддерживается, и установка NameIDPolicy на ноль приведет к ошибке.
Если вы не установите NameIDPolicy, запрос SAML по умолчанию будет: urn:oasis:names:tc:SAML:2.0:nameid-format:transient
, что может вызвать проблемы интеграции.
Чтобы явно не отправлять NameIDPolicy в запросе на аутентификацию, примените найденный патч Вот, и установите для NameIDPolicy значение false.
'NameIDPolicy' => false