Начало работы с SAML и PHP
Я начинаю работу над добавлением поддержки SSO SAML в проект и ищу любые полезные ресурсы, специально предназначенные для PHP. Я понимаю основные понятия и трюк для любых библиотек, которые могли бы помочь, но вышли пустым. Единственное, что я нашел, это simpleSAMLphp, который выглядит как целый стек.
Любые советы по интеграции SAML в существующий проект? Бонусные баллы для предложений, связанных с Zend-Framework!
Ответы
Ответ 1
Я думаю, что SimpleSAMLPHP - это способ сделать ваше приложение действительным как полноценный поставщик услуг SAML 2.0. Это действительно полный стек, но вы можете ограничить функциональность до минимума.
По моему опыту, конфигурация намного проще, чем с Shibboleth. Этот шаг упрощается с веб-сайта конфигурации, который поставляется с дистрибутивом.
Влияние на каждую страницу PHP относительно невелико: http://simplesamlphp.org/docs/1.8/simplesamlphp-sp#section_6
Это решение, которое мы выбрали для нашей среды Zend.
Ответ 2
Мы использовали набор инструментов PHP-SAML из OneLogin для проекта, который работал с непроверенными прокси-серверами (simpleSAMLphp не любил не знать, URL, на котором он был размещен).
Он прост, поддерживая самый простой логин, но SAML 2.0 - это огромная спецификация, и он может не поддерживать то, что вы хотите от него (например, он не поддерживает подписывание запросов на аутентификацию).
Ответ 3
Хотя это не специфичное для PHP решение, возможно, Shibboleth будет приемлемым решением для вас - оно поддерживает как Apache, так и IIS, и может использовать с потенциально любой веб-картой - java/php/asp.net. Это также помогает, будучи плагином Filter на вашем веб-сервере, поэтому вашему приложению потребуются минимальные (если есть) модификации, чтобы использовать его
Ответ 4
Мы использовали SamlSpBundle, который мы нашли вполне настраиваемым и дружественным Symfony2. Если вы не используете фреймворк Symfony2, вы можете посмотреть на него библиотеку фундамента lightsaml, которая является автономной.
Ответ 5
http://framework.zend.com/manual/en/zend.infocard.basics.html имеет SAML1.0, но с тех пор SAML переместился...