Аутентификация на основе утверждений от PHP до Windows?

Я работаю в компании, где все мои веб-приложения подключаются к каталогам LDAP или AD для целей аутентификации и/или авторизации. Как правило, это работает достаточно хорошо. Однако в настоящее время — особенно в связи с последним введением в SP2010 — люди с нетерпением ждут единого входа и не хотят повторно входить в систему.

Итак, мой вопрос:

Есть ли способ заставить PHP требовать аутентификацию из Windows? Я имею в виду, что SharePoint делает это с WIF на IIS - может быть, PHP так же хорош: P

Мой быстрый гугл не дал хороших результатов, так что мои надежды не слишком велики, но я подумал, что стоит спросить вас, ребята. Заранее спасибо - с Новым годом!


person Sam    schedule 03.01.2012    source источник
comment
Вы ищете поддержку SSO в PHP с поставщиком SSO, являющимся AD или SP? Или вы хотите выполнить аутентификацию LDAP или AD с помощью PHP?   -  person Alec Gorge    schedule 03.01.2012
comment
Первый, наверное. Я делаю аутентификацию LDAP / AD прямо сейчас, хотя с тех пор, как я использую SharePoint, люди не хотят входить в систему, а скорее БЫЛИ зарегистрированы :) Итак, я хочу знать, возможно ли это с PHP   -  person Sam    schedule 03.01.2012
comment
Возможно, это будет полезно: приложение php на другом сервере"> stackoverflow.com/questions/242669/   -  person Alec Gorge    schedule 03.01.2012
comment
Спасибо за это, на самом деле это полезно, но я скорее ищу решение без точек доступа. Тоже есть что-то подобное?   -  person Sam    schedule 03.01.2012


Ответы (1)


Нет простого способа реализовать это на чистом PHP. У меня была точно такая же задача, и я ее выполнил, но все решение включает как минимум необработанный HTTP/1.1, NTLM и SMB (общий ресурс Windows) через TCP/UDP/NetBIOS. Каждый из них сам по себе достаточно сложен, и у PHP нет никаких расширений, чтобы помочь с ними.

Однако есть «путь Apache»:

  • mod_auth_sspi (если вы работаете в Windows)
  • mod_auth_ntlm (думаю, это работает только с Apache ‹= 1.3)
  • libapache2-authenntlm-perl (есть сообщения, что этот вызывает зависание веб-сервера после получения большого количества запросов)
  • mod_auth_kerb (не использовал этот, но NTLM заменен реализацией Microsoft KerberosV5, и это самое современное доступное решение, однако оно требует дополнительной настройки сервера)
person Narf    schedule 03.01.2012
comment
Спасибо за информацию, обязательно учту. Звучит немного «не по правилам» сейчас, учитывая время, которое я могу инвестировать, но это, безусловно, вызов на будущее, так что спасибо! - person Sam; 03.01.2012