У меня есть приложение PHP, работающее с Nginx на сервере Linux, и оно успешно интегрируется с моим Active Directory, используя LDAP .
В текущем сценарии пользователь может создать новый логин для приложения или использовать свои учетные данные Windows для входа в приложение.
Теперь я пытаюсь реализовать полную систему единого входа (SSO), и пользователь, вошедший в систему со своими учетными данными на компьютере Windows в домене, сможет открыть приложение, зарегистрированное без повторного использования учетных данных.
Проводим некоторые исследования, поскольку мой сервер Linux не находится в одном домене, поэтому лучше всего использовать NTLM (старый и небезопасный), Протокол Kerberos или Согласовать протокол ( это будет выбор между NTLM и Kerberos для каждого запроса), в зависимости от версии Windows и того, что реализовано в контроллере домена.
В Интернете есть множество учебных пособий, а также хороших тем по теме здесь, в SO. Эта еще одна ссылка показывает хороший обзор возможностей использования Apache в качестве веб-сервера (для опции Kerberos я обнаружил порт Nginx , так что это не главная проблема).
Хорошо, я создал несколько тестовых приложений с использованием этих подходов (включая все изменения на стороне браузера , ограниченные Firefox), но все они являются зависимыми от веб-сервера (Apache, Nginx или даже IIS) , Поскольку мое приложение уже полностью интегрировано с AD через LDAP, я заинтересован в каком-либо независимом от веб-сервера решении. Есть ли способ «обойти» аутентификацию на веб-сервере и получить информацию о зарегистрированном пользователе прямо в моем PHP-коде (клиент (Firefox) на сервер (PHP))?
Мои лучшие догадки на данный момент - это некий тип "чистой" реализации PHP Kerberos , для которого требуется модуль PECL или NTLM , который небезопасен и по-прежнему запрашивает пользователя учетные данные в первом запросе.
Я знаю, что, возможно, это невозможно, но я спрашиваю об этом случае, когда я пропустил какую-то важную информацию в этом исследовании. Можно ли получить информацию о пользователях Windows напрямую в PHP?