Єдиний вхід із кількома постачальниками посвідчень із веб-програми PHP


0

Я будую веб-додаток SAAS в PHP, якому потрібно інтегрувати SSO. У нас буде кілька клієнтських організацій, у кожної з яких є власний постачальник ідентифікаційних даних (Active Directory). Досліджуючи можливості, я натрапив на SimpleSAMLphp, але не впевнений, що він буде відповідати моїм вимогам і хотів би отримати зворотній зв'язок щодо найкращого підходу до впровадження. Здається, SAML або Kerberos - це шлях, але я маю обмежений досвід у цій галузі.

Потрібні ці здібності:

  1. Клієнт-адміністратори повинні мати можливість додавати та видаляти доступ до нашого додатку через AD.
  2. Аутентифікувати користувача з відповідним сервером AD (гнучкість для автентифікації з іншими - великий плюс) - окрім залежно від статичних IP-адрес, як я можу дізнатись, якого постачальника посвідчень перевірити?
  3. Користувачі організацій, які не мають постачальника посвідчень особи, повинні мати можливість увійти через існуючий метод аутентифікації (хеш-пропуск у mysql).

Додаткова інформація: Я планую розмістити додаток PHP на сервері CentOS. У нас є можливість підключення VPN від сайту до сайту, якщо це потрібно ... Додано це запитання на stackoverflow, відповідей там немає, сподіваючись, що деякі адміністратори сервера тут можуть мати деяке розуміння.

ОНОВЛЕННЯ: Також у нас буде гібридний додаток IONIC (ios / android), який повинен мати SSO - на даний момент я не маю уявлення, як це буде пов'язано. Мобільний додаток буде спілкуватися через програм REST, розроблений в PHP

Відповіді:


1

Що вам потрібно зробити, це інтегрувати ADFS з SimpleSAML. Для цього вам потрібно активувати ADFS в ActiveDirectory.

  1. Вам потрібно буде надіслати членство в групі як правила заявки на це, або щось подібне.

  2. Ви точно можете використовувати будь-яку кількість постачальників SAML (ADFS). Вам просто потрібно буде зберігати інформацію для кожної з них і мати з ними встановлене довірче відношення.

  3. Навіть якщо ви реалізуєте SAML (на основі ADFS), вам все одно потрібно буде зберігати інформацію про користувачів у вашій базі даних, інакше ви не зможете встановити відносини в програмі на їх основі. Таким чином, ви можете просто додати ще одне поле прапорця до таблиці користувачів, щоб вказати, чи це локальний або віддалений користувач. Якщо ви хочете зберегти послідовність, ви також встановите власний локальний сервер SAML і просто використовуєте його, як окремий постачальник SAML.

Для легшого впровадження, ви також можете подивитися на сервер ідентичності WSO2, який ви можете використовувати для об'єднання входу до декількох SAML (та інших типів) кінцевих точок. Великою перевагою було б те, що ви також можете використовувати його для зберігання місцевих користувачів. Використовуючи це, ви можете просто реалізувати єдину кінцеву точку у вашій програмі, і WSO2 має справу з усіма іншими. Звичайно, вам все-таки потрібно встановити довіру між WSO2 та кожною AD.


Я щойно додав до свого запитання, вибачте за це. Чи маєте ви досвід роботи з мобільними додатками? У нас також буде розроблений мобільний додаток на базі IONIC, який повинен мати SSO, цікаво, чи я все ще підтверджую автентифікацію через API REST або як цей процес буде працювати. Сподіваючись на рішення, яке може вмістити як веб-додаток, так і мобільний додаток - якщо це можливо.
webaholik

WSO2 може також об'єднувати OAuth2. OAuth2 - це набагато мобільніше, ніж SAML.
Флорін Асвойае
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.