Я отключаю доступ к некоторым папкам неавторизованным пользователям следующим образом:
AuthUserFile /var/www/passwords/.htpasswd_private
AuthType Basic
AuthName "Access to private admin section"
Require valid-user
Он отлично работает на производственном сервере (Ubuntu). Проблема в том, что я хочу, чтобы тот же код разрешал доступ (или, по крайней мере, запрашивал пароль) на компьютере под управлением Windows.
Пытался добавить
Allow from 127.0.0.1
Но журналы показывают ошибку, потому что он не может найти файл паролей на компьютере разработчика. Система не может найти указанный путь. : Не удалось открыть файл паролей: C: /var/www/passwords/.htpasswd_private
Каким элегантным способом сообщить apache разрешить доступ или запросить пароль на компьютере разработчика?
Создать каталог C:/var/www/passwords/.htpasswd_private
а затем используйте htpasswd.exe
программа, поставляемая с вашей установкой apache, чтобы создать .htpasswd_private
файл
htpasswd -c C:/var/www/passwords/.htpasswd_private username
Automatically using MD5 Format
New password: *********
Re-type password: *********
Adding password for user username
Теперь у вас должна быть система, работающая как ваш рабочий сервер.
Разрешить от не означает, что вы можете просто войти без пароля, он просто устанавливает, какие хосты могут получить к нему доступ. Он по-прежнему будет запрашивать пароль.
У вас есть два варианта:
C:/var/www/passwords/.htpasswd_private
Вы удаляете эти параметры в объявлении каталога:
AuthUserFile /var/www/passwords/.htpasswd_private
AuthType Basic
AuthName "Доступ к приватной админке"
Требовать действительного пользователя
И вы просто оставляете инструкцию Allow from 127.0.0.1.
У меня была двойная аутентификация htpasswd + LDAP AuthBasicProvider file ldap
как показано ниже: AuthType Basic AuthName "MyApp"
AuthBasicProvider file ldap
AuthUserFile /var/www/domain.tld/myapp/.htpasswd
# LDAP
AuthzLDAPAuthoritative off
AuthLDAPURL "ldaps://ldap.domain.tld:636/dc=domain,dc=tld?uid?sub?(&(objectClass=person)(mail=*@domain.tld))" SSL
AuthLDAPBindDN "CN=myapp,OU=Applications,DC=domain,DC=tld"
AuthLDAPBindPassword "xxxxxxxxxx"
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
Require valid-user
Кажется, достаточно удалить / прокомментировать только следующие директивы:
AuthUserFile
AuthzLDAPAuthoritative
Require