включить URL-адрес потребительской службы утверждения в запрос simplesamlphp для SSO, инициированного sp

Потерпите, это моя первая настройка федеративной идентификации. Я использую SimpleSAMLphp для подключения.

Я пытаюсь настроить новое приложение для клиента, использующего PingFederate. Мы не храним никаких учетных данных на нашей стороне, поэтому я полагаю, что это инициированный SP запрос SSO с использованием удаленного IdP (от клиента). Я настроил файл config/authsources.php:

'client-sp' => array(
    'saml:SP',
    'privatekey' => 'saml.pem',
    'certificate' => 'saml.crt',
    'entityID' => NULL,
    'idp' => 'https://client.idp.url',
    'discoURL' => NULL,
    'signature.algorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256',
),

И я получил их файл метаданных и настроил файл metadata/saml20-idp-remote.php:

$metadata['https://client.idp.url'] = array(
    'metadata-set' => 'saml20-idp-remote',
    'entityid' => 'https://client.idp.url',
    'SingleSignOnService' => array(
        0 => array(
            'Binding' => "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", 
            'Location' => "https://client.idp.url/idp/startSSO.ping?PartnerSpId=http://my.app.url",
        ),
        1 => array(
            'Binding' => "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
            'Location' => "https://client.idp.url/idp/startSSO.ping?PartnerSpId=http://my.app.url",
        ),
    ),
    'certData' => 'etc'
    'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
);

Наконец-то мы дошли до того, что из панели управления SimpleSAMLphp мы могли протестировать источник аутентификации, и он правильно перенаправил на их корпоративную страницу входа, принял имя пользователя и пароль и перенаправил обратно... но URL-адрес, на который он перенаправлялся обратно на основной URL-адрес приложения, а не на панель администратора SimpleSAMLphp, где перечислены все атрибуты, возвращенные в ответе SAML. Возвращаясь к их заметкам, когда мы впервые настроили федерацию, им нужно, чтобы мы предоставили URL-адрес службы поддержки утверждений в запросе на SSO, инициированном поставщиком услуг... Я думаю, что это единственная недостающая часть, но я не уверен, как настроить SimpleSAMLphp для этого. Ожидаемое поведение заключается в том, что для любого URL-адреса, для которого требуется SSO, приложение будет проверять, находится ли токен SAML в системе, и если нет, перенаправлять пользователя на страницу входа клиента, а затем обратно туда, куда пользователь пытался получить доступ. до того, как они были перехвачены. Я просмотрел документы для SimpleSAMLphp, но они кажутся... неполными; например, единственное упоминание, которое они делают для URL-адреса ACS, касается запросов, инициированных IdP. Но они также почти единственное имя в мире PHP SSO, поэтому я как бы застрял с ними, к лучшему или к худшему.

Итак, мой вопрос: с помощью URL-адреса ACS или каким-либо другим способом я могу контролировать, на какой URL-адрес перенаправляется пользователь после входа в систему через страницу SSO клиента?


person mounty    schedule 03.07.2014    source источник


Ответы (1)


URL-адреса для привязок неверны: поскольку ваш клиент использует PingFederate, URL-адрес должен быть:

'Location' => "https://client.idp.url/idp/SSO.saml2",

как для POST, так и для привязки Redirect. Вы должны дважды проверить это по метаданным, которые вы получили от клиента: если эти метаданные были сгенерированы автоматически PingFederate (как и должно быть), они не будут содержать ссылки на «внутреннюю» конечную точку idp/startSSO.ping, а на общедоступную конечную точку SAML 2.0 /idp/SSO.saml2.

person Hans Z.    schedule 24.02.2015
comment
Я отмечу это как ответ, потому что концептуально вы правы, но фактический процесс был намного проще. На самом деле в SsimpleSAMLphp есть инструмент импорта метаданных, хотя он немного спрятан. Когда я пропустил их метаданные через инструмент импорта, он выдал немного другое, и служба чудесным образом заработала. Удивительно, что происходит, когда вы используете правильные инструменты для работы. - person mounty; 25.02.2015