Настройка проверки подлинности Windows для Apache
Для начала я около часа рылся в Интернете, пытаясь выяснить, как это сделать, но безуспешно - поэтому я пишу этот вопрос.
У меня есть сайт интрасети, для доступа к которому требуется имя пользователя Windows (не сервер, на котором работает Apache, а пользователь, получающий доступ к сайту интрасети).
Я установил adLDAP и заставил его работать там, где пользователь может войти с помощью этого, чтобы проверить группу, в которой находится пользователь. Но, чтобы мой сайт был более безопасным, я бы предпочел, чтобы он получите доступ к имени пользователя Windows.
Я видел, что есть модуль apache под названием mod_auth_sspi, но я не смог найти, как его установить или даже реализовать (использовать) в своем коде.
Я использую Apache v2.4, PHP 5.6.8 в Windows Server 2008.
1 answers
Итак... Я узнал, как это сделать, еще через несколько часов погуглив... это действительно должно быть более прямолинейно, чтобы найти ответ, но, тем не менее, вот он:
1) Загрузите следующий модуль для вашей системы (32 бит из 64 бит): https://www.apachehaus.net/modules/mod_authnz_sspi/
2) Вставьте файл в папку "Модули". /apache/modules/
3) Отредактируйте следующие файлы конфигурации:
3.1) php/php.ini
: Раскомментировать extension=php_ldap.dll
линия.
3.2) apache/conf/httpd.ini
: Добавьте следующее в конец раздела LoadModules:
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
3.3) Найдите тег <Directory
и удалите открывающий и закрывающий тег вместе с его содержимым. Затем вставьте следующее:
<Directory />
Options None
AllowOverride All
Order allow,deny
Allow from all
AuthName intranet
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic On
SSPIOmitDomain On
Require valid-user
</Directory>
Затем после перезапуска Apache все это должно работать. Получите имя пользователя пользователя Windows с помощью <?php echo $_SERVER['PHP_AUTH_USER'] ?>