Apache .htaccess трюк для аутентификации только один раз для всех поддоменов?

Я использую что-то подобное в файле .htaccess, чтобы ограничить доступ к веб-сайту:

AuthUserFile /some/directory/.passwd AuthGroupFile /dev/null AuthName EnterPassword AuthType Basic require valid-user 

Это отлично работает, но пользователю предлагается аутентифицироваться каждый раз, когда изменяется поддомен, например user1.mywebsite.com, user2.mywebsite.com или просто mywebsite.com

Есть ли способ сказать Apache2, что когда пользователь аутентифицируется против одного субдомена, он должен предоставить ему доступ ко всем другим?

Невозможно; Вы можете использовать один файл .htaccess, чтобы предоставить доступ к чему-либо в вашем дереве каталогов с одинаковыми учетными данными, но для каждого уникального субдомена требуется аутентификация.

Как указывает Бенни, для достижения этой цели вам понадобится аутентификация на основе сеанса в той или иной форме.

Это невозможно сделать с помощью http basic auth specs. Realms bob.example.com и elisa.example.com – это два разных пространства защиты, и почти каждый браузер будет рассматривать их как две отдельные, разные сферы, которым должны быть доверены разные аутентификационные данные.

Как бы то ни было, есть решение – HTTP digest auth. Он позволяет указать все домены, которые являются URL-адресами в защищенном пространстве. Однако он не позволяет поддоменам подстановочных знаков, поэтому после десятка доменов он получает довольно PITA. Пример config.

 <Location /> AuthType Digest AuthName "teh realm" AuthDigestAlgorithm MD5 AuthDigestDomain / http://domain.com/ http://subdomain.domain.com/ AuthDigestQop auth AuthDigestProvider file AuthUserFile /etc/apache2/.htpasswd-digest </Location> 

IMO, что ваш единственный выбор – написать собственный аутентификатор FastCGI, который куки-пользователи пользователей, которые разрешают поддомены подстановочных знаков. Если у вас мало доменов, его легче придерживаться дайджеста.

Все ли субдомены обслуживаются из подпапок одного и того же докрова? Если это так, похоже, что эта аутентификация в .htaccess основного docroot может смягчить повторную аутентификацию.

В качестве альтернативы (хотя для вашего пользователя может потребоваться некоторая работа над разработкой), вместо этого вы можете попробовать аутентификацию на основе сеанса.

http://httpd.apache.org/docs/2.3/mod/mod_session.html

  • SSSD отклоняет логин LDAP с помощью su: неверный пароль
  • Аутентификация форм перенаправляется на страницу inputа, если только пул приложений не переработан
  • Почему предыдущая аутентичность хоста игнорировалась?
  • Все клиентские браузеры неоднократно запрашивали аутентификацию NTLM при работе через локальный прокси-сервер
  • Apache HTTPD: разрешить пользователям в htpasswd или LDAP с определенной группой
  • Сообщение об ошибке Postgres: FATAL: аутентификация идентификатора для пользователя «...»
  • Apache .htaccess трюк для аутентификации только один раз для всех поддоменов?
  • Аутентификация Windows KRB5KRB_AP_ERR_MODIFIED
  • Как разрешить ошибку проверки подлинности sendmail через gmail [закрыто]
  • Как я могу проверить, использует ли мой сайт IIS NTLM или Kerberos?
  • Как использовать Active Directory для аутентификации пользователей Linux
  • Давайте будем гением компьютера.