Я создаю веб-приложение SAAS в PHP что необходимо интегрировать SSO. У нас будет несколько клиентских организаций, у каждой из которых будет собственный поставщик удостоверений (Active Directory). Изучая возможности, я наткнулся на SimpleSAMLphp, но я не уверен, что он будет соответствовать моим требованиям, и хотел бы получить отзывы о наилучшем подходе к реализации. Кажется, что SAML или Kerberos - лучший вариант, но у меня ограниченный опыт в этой области.
Нужны эти способности:
Дополнительная информация: Я планирую разместить приложение PHP на сервере CentOS. У нас есть возможность подключить VPN-соединение между сайтами, если это необходимо ... Этот вопрос добавлен в stackoverflow, ответов нет, надеясь, что некоторые администраторы серверов могут иметь какое-то представление.
ОБНОВЛЕНИЕ. Кроме того, у нас будет гибридное приложение IONIC (ios / android), для которого потребуется SSO - на данный момент я понятия не имею, как это будет связано. Мобильное приложение будет взаимодействовать через REST api, разработанное в PHP.
Что вам нужно сделать, так это интегрировать ADFS с SimpleSAML. Для этого вам необходимо активировать ADFS в ActiveDirectory.
Вам нужно будет отправить членство в группе в виде правил утверждения для этого или что-то подобное.
Вы определенно можете использовать любое количество поставщиков SAML (ADFS). Вам просто нужно будет сохранить информацию для каждого из них и установить доверительные отношения с каждым из них.
Даже если вы реализуете SAML (на основе ADFS), вам все равно нужно будет хранить информацию о пользователях в своей базе данных, иначе вы не сможете устанавливать отношения в приложении на их основе. Таким образом, вы можете просто добавить еще одно поле флага в таблицу пользователей, чтобы указать, является ли он локальным или удаленным пользователем. Если вы хотите сохранить согласованность, вы также должны установить свой собственный локальный сервер SAML и просто использовать его как отдельного поставщика SAML.
Для упрощения реализации вы также можете взглянуть на WSO2 Identity Server, который вы можете использовать для федеративного входа в систему для нескольких конечных точек SAML (и других типов). Большим преимуществом было бы то, что вы также могли бы использовать его для хранения ваших локальных пользователей. Используя это, вы можете просто реализовать одну конечную точку в своем приложении, а WSO2 сделает все остальное. Конечно, вам все равно потребуется установить доверие между WSO2 и каждым AD.