Как лучше всего включить Встроенная проверка подлинности Windows для веб-приложения PHP, работающего на Apache2 / Linux? В сети есть контроллер домена Windows, который следует использовать для аутентификации.
Я нашел эти модули apache:
Но эти модули кажутся очень устаревшими (последнее обновление 2007/2008). Есть ли лучший и более современный способ сделать это?
Я считаю, что WDC использует LDAP, и в этом случае вам, вероятно, понадобится mod_authnz_ldap.
Лучший вариант - это mod_auth_sspi, это разумно актуально, последний раз выпущен в 2011 году.
Я использовал mod_auth_sspi 1.0.4 с apache 2.2.9 на Windows Server 2003, и он отлично работает с клиентами Windows XP. Они входят в систему автоматически. Вот моя конфигурация, обратите внимание, что вам не нужен бит SVN, но вы можете увидеть, как ограничить его определенными группами.
# Set that only Domain Users can access this whole server
LoadModule sspi_auth_module modules/mod_auth_sspi.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule rewrite_module modules/mod_rewrite.so
<LocationMatch />
AuthType SSPI
AuthName "Windows Authentication"
SSPIAuth On
SSPIAuthoritative On
SSPIDomain dmn.example.com
SSPIOmitDomain On
SSPIOfferBasic Off
SSPIUsernameCase lower
</LocationMatch>
<LocationMatch /trac>
Require valid-user
</LocationMatch>
# Share subversion repos under http://grp-svn:/svn/REPO_NAME
# We need developers to have read and write access and app support and prod support to have read only.
# The front office dev team also have access.
<Location /svn>
DAV svn
SVNParentPath D:\GRP-Data\svn\repos
<Limit GET PROPFIND OPTIONS REPORT CHECKOUT>
Require group "DMN\\GRP-DEV" "DMN\\GRP-SKY Production Support" "DMN\\FS_Sky_RO_DL"
</Limit>
<Limit POST PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK VERSION-CONTROL REPORT CHECKOUT CHECKIN UNCHECKOUT MKWORKSPACE UPDATE LABEL MERGE BASELINE-CONTROL MKACTIVITY ORDERPATCH ACL PATCH SEARCH>
Require group "DMN\\GRP-DEV" "DMN\\AS_Apache FO_C_DL"
</Limit>
</Location>