Назад | Перейти на главную страницу

Установка nameid-format: persistent в запросе SimpleSAML

Я настраиваю единый вход (как поставщик услуг) через SimpleSAML. После импорта метаданных из XML поставщика удостоверений первое перенаправление сработало.

Однако войти в систему не удается с sspmod_saml_Error: Requester/InvalidNameIDPolicy: An error occurred. и провайдер идентификации (idp) сообщает мне, что запрос должен включать

format: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

Вместо того

format: urn:oasis:names:tc:SAML:2.0:nameid-format:transient

Единственное, что я нашел в руководстве SimpleSAML, относится к конфигурации idp (руководство). Однако, когда я добавляю это в metadata/shib13-sp-remote.php ан metadata/saml20-sp-remote.php ...

$metadata['<same URL as in metadata/saml20-idp-remote.php>'] = array (
        'NameIdFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'
);

... тогда ничего не меняется. Запрос по-прежнему содержит:

<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" AllowCreate="true"/>

Это не неожиданно, поскольку я пытаюсь настроить запрос на idp, а не на sp. Итак, в полном отчаянии, я тоже попытался установить NameIdPolicy на то же значение, и я также пробовал файлы ...- idp-remote.php, но (как и ожидалось) это тоже не помогло. И я также попробовал использовать идентификатор поставщика услуг в качестве ключа для метаданных $, но ... ну.

Также попробовал модификацию metadata/saml20-ipd-hosted.php как описано Вот, но это тоже не повлияло.

Это действительно рыбалка в темноте, в документации SimpleSAML отсутствует какая-то основная информация (где, например, поставить эти параметры) ... Итак, я предполагаю, что у меня неправильный файл, неправильный ключ или неправильная настройка. Любые подсказки приветствуются. Спасибо!

После поиска и поиска я обнаружил, что это поведение жестко запрограммировано в SimpleSAML в modules/saml/lib/Message.php

    $policy = array(
        'Format'      => $nameIdPolicy_cf->getString('Format', \SAML2\Constants::NAMEID_TRANSIENT),
        'AllowCreate' => $nameIdPolicy_cf->getBoolean('AllowCreate', true),
    );

Изменение этого не решило проблему связи с IdP ... так что, вероятно, это нормально, что это так.