Превращение вашего PHP сайта в SAML Identity Provider

Дело в том, что мне нужно, чтобы мой веб-сайт выступал в качестве поставщика удостоверений (читай: IDP). Сам сайт находится на платформе Zend. Идея заключается в создании контроллера IDP, с помощью которого поставщики услуг (читай: SP) связываются с IDP. Поскольку это должно быть частью веб-сайта, мне нужно будет включить некоторое расширение, которое можно было бы легко использовать для ответа на запросы SAML от SP.

Я нашел список расширений PHP от:https://wiki.surfnetlabs.nl/display/OSP/RFC+-+OpenSAMLphp,+a+new+PHP+library+for+SAML+2.0+support

Все эти расширения имеют мало документации или слишком сложны. Например, у меня нетЯ нашел способ использовать SimpleSamlPHP в моем приложении, а также извлечь из него полезный код, который выглядит очень трудоемким (чего я на самом деле небольше нет). Кроме того, я нахожу их все трудно реализоватьв Веб-сайт.

Я уже несколько дней гуглю и проверяю github, пытаясь найти простой способ использовать какую-нибудь библиотеку (сейчас яЯ пытаюсь реализовать Лассо, что кажется разумным, но, к сожалению, не хватает хороших примеров / информации о том, как использовать его как IDP).

Любая критика, идеи, помощь или учебное пособие / примеры кода будут полезны.

 alwaysLearn30 мая 2015 г., 17:57
Я застрял в том же требовании и ищу решение. Я хочу знать, есть ли какое-либо эффективное решение для того же. ?

Ответы на вопрос(3)

ачестве альтернативы есть комплект безагентной интеграции (вместо PHP), который позволяет интегрировать с помощью вызова API RESTful сервер PingFed вместо встраивания любых библиотек PHP.

HTH, Ян

 R.P16 нояб. 2012 г., 09:52
PingFederate - это отдельный коммерческий сервер, и комплект интеграции с PHP, по их информации, предназначен для PingFederate, что мне не подходит, так как я неЯ не хочу создавать еще один VirtualHost в httpd.conf, и мне нужно, чтобы все SAML IDP были выполнены на моем веб-сайте. Но спасибо за совет.
 Ian16 нояб. 2012 г., 17:34
Понял. Быстрое пояснение - у PF есть собственный встроенный HTTP (S) -сервер, поэтому вы не добавите ничего в файл httpd.conf для настройки виртуального сервера.

как развернуть в программном обеспечении с открытым исходным кодом (Tiki-wiki) IdP с помощью simplesamlphp и как подключить IdP к Google или Salesforce. Взглянуть:

https://github.com/pitbulk/tiki-saml/blob/master/doc/tiki_wiki_as_idp.rst

 smartin16 нояб. 2012 г., 16:02
Мое предложение: разверните один SP для spService.com и другой SP для myService.com. Этот последний SP (myService.com) будет также действовать как IdP, где auth backend - это база данных myService.com. Затем подключите все компоненты.
 R.P16 нояб. 2012 г., 10:04
Это одно из лучших руководств на данный момент. Я бы дал +1 за полезные, но недостаточно очков. Но ваш пример подразумевается как автономный сервис и будет находиться за пределами моего сайта, который нене выполнить мою цель. Что я хочу, так это мой SP (spService.com) связатьсяmyService.com/sso а также "Спросите, вошел ли этот пользователь на ваш сайт?, После ответа SP проверит, является ли Valid, затем войдет в систему - в противном случае запросите учетные данные, и при входе в spService ему не нужно будет входить в myService.com!
 Corey Ballou19 дек. 2012 г., 00:21
Определенно полезное руководство. Вы должны где-то опубликовать это в блоге, так что, возможно, Google подберет его.

но он может обработать все ответы SAML для вас. Вы смотрели на создание пользовательского модуля аутентификации -http://simplesamlphp.org/docs/stable/simplesamlphp-customauth

Вы можете легко привязать этот модуль к существующему механизму входа в систему.

 R.P15 нояб. 2012 г., 17:09
Хорошо, но как вы можете использовать это в своем веб-приложении? Как создать SimpleSamlPHP и отправить запрос SP в эту библиотеку, когдане отдельный домен? Например: $ saml = new SamlAbstract ($ xml, $ token, $ spDomain); // создает мой saml, затем переходит к SimpleSamlPHP, чтобы выполнить весь процесс аутентификации $ saml->SendResponse (); // отправляет ответ SP (в метаданных должно быть указано действительное или недействительное право?)

Ваш ответ на вопрос