Ошибка Requester/InvalidNameIDPolicy с SimpleSAMLPHP SP и IDP ADFS

после просмотра по всему интернету, особенно

я попробовал все предложенные модификации 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)

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

    //'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',

спасибо!

3 ответов


да. В приступе гнева и разочарования. Я поставила политики идентификатора имени в NULL и все работает. 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-provider-cp-during-saml-2-0-single-sign-on-sso.aspx вы должны использовать значение по умолчанию не определено 'Политики идентификатора имени' => 'урна:оазис:названия:ТС:на основе SAML:1.1:имени-формат:неизвестная',


по состоянию на SimpleSAML v1.15.0, принятый ответ не поддерживается, и установка NameIDPolicy в null приведет к ошибке.

Если вы не установите NameIDPolicy, запрос SAML будет по умолчанию:urn:oasis:names:tc:SAML:2.0:nameid-format:transient, что может вызвать проблемы с интеграцией.

чтобы явно не отправлять NameIDPolicy в запросе auth, примените найденный патч здесь, и установить политики идентификатора имени в false.

'NameIDPolicy' => false