Обработка ответа SAML

Я новичок в SAML 2, и я работаю над инструментом, который требует SSO, но я не знаю, как это сделать. Вот поток:

1) Пользователь обращается к основному веб-сайту и выбирает вход в систему. 2) Пользователь вводит регистрационную информацию и отправляет 3) Система проверяет учетные данные, генерирует ответ SAML и перенаправляет пользователя на новый инструмент вместе с ответом SAML как переменной POST. 4) Новый инструмент анализирует ответ, сохраняет / обновляет информацию в базе данных и создает активный сеанс для пользователя.

1,2 и 3 уже созданы на основном веб-сайте. Я работаю над 4. Основные разработчики предоставили нам образец ответа SAML и сертификат. У меня есть 2 вопроса / вопросы:

1) Используя форму SSO на тестовом сервере, я ввел URL-адрес возврата в php-файл на моем сервере и отправил форму. Он зарегистрировал меня и перенаправил меня на страницу моего сервера. Ниже приведен код страницы, а ниже:

<?php var_dump($_POST); ?> 

Вывод:

 array(0) { } 

Неужели я прав? Я проверил использование Firebug в Firefox, и я мог найти samlresponse там где-то, но я не уверен, как именно привести его на страницу. Любая помощь?

2) Используя образец ответа SAML, мы смогли закодировать небольшой скрипт, который анализирует образец и печатает 2-3 атрибута внутри. Это правильный способ сделать это, или есть ли более доступные решения с открытым исходным кодом?

Я пробовал читать на SimpleSAMLPHP, OneLogin и еще пару таких пакетов, но они кажутся слишком сложными, тогда как я чувствую, что я должен достичь здесь, может быть сделано с помощью методов / решений намного проще. Кроме того, в пакетах есть все возможности предлагать SAML, тогда как я просто получаю и разбираю ответ.

Благодарим вас за помощь в продвижении! ура

Related of "Обработка ответа SAML"

Если вы хотите выполнить ручную разборку и обработку сообщений SAML, OpenSAML может быть способом. Это библиотека очень низкого уровня, и в ней задействовано много ручного труда.

Вот веб-страница OpenSAML

Вам нужно будет изучить спецификацию SAML

Моя книга «Руководство по OpenSAML» дает хорошее представление и шаг за шагом на SAML и в библиотеке OpenSAML.

Также в моем блоге есть несколько примеров. http://blog.samlsecurity.com/search/label/OpenSAML http://blog.samlsecurity.com/search/label/SAML

Честно говоря, разбор и проверка ответа SAML не является тривиальным. SP должен знать EntityDescriptor (ы) IdP, и IdP должен знать EntityDescriptor (ы) SP. И есть несколько привязок / профилей. И Response / Assertion может быть зашифрован / подписан, что означает, что вы должны расшифровать и / или проверить цифровые подписи. SAML – довольно сложный протокол, нет простого способа разобрать / проверить.

Вы можете попробовать кодировать и декодировать ваши SAMLReponses со ссылкой ниже:

https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php

Вы пытаетесь автоматизировать эти шаги и проанализировать их.

Вы можете использовать библиотеку моделей данных SAML для LightSam php для анализа / сериализации сообщений SAML. Если вы работаете на платформе Symfony2, вы также можете использовать SamlSPBundle . Используя только световой сигнал, получающий ответ SAML и разбор, он будет выглядеть примерно так:

 $request = new Request(); $request->setQueryString($_SERVER['QUERY_STRING']); $request->setGet($_GET); $request->setPost($_POST); $request->setRequestMethod($_SERVER['REQUEST_METHOD']); $bindingDetector = new BindingDetector(); $bindingType = $bindingDetector->getBinding($request); $binding = $bidingDetector->instantiate($bindingType); $samlResponse = $binding->receive($request);