Использование Apache mod_auth в нескольких поддоменах для единого входа? - PullRequest
3 голосов
/ 04 декабря 2008

У меня есть домен и группа поддоменов, для доступа к которым требуется аутентификация. В настоящее время я использую mod_auth для аутентификации пользователей (mod_auth basic) на уровне domain.tld. Моя цель - единый вход между доменом и всеми поддоменами.

Будут ли эти учетные данные переноситься на субдомены автоматически или с простым изменением конфигурации vhost, или есть лучший способ сделать это?

1 Ответ

9 голосов
/ 04 декабря 2008

mod_auth_basic

Браузеры различают области, требующие HTTP-аутентификации, по комбинации корневого URL-адреса и имени области аутентификации.

Возьмем, к примеру, два домена, каждый с областью с одинаковым именем:

http://one.example.com/ with the realm "Please enter credentials!"
http://two.example.com/ with the realm "Please enter credentials!"

Сначала пользователь посещает one, запрашивает учетные данные и вводит их. Затем пользователь посещает two, браузер распознает, что URL-адрес отличается, и таким образом снова запрашивает у пользователя его учетные данные.

Это хорошо, потому что в противном случае www.badguy.com может настроить его так, чтобы ваш браузер отправлял через ваш логин онлайн-банкинга.

Короче говоря: невозможно решить вашу проблему с помощью обычной HTTP-аутентификации и стандартных клиентов HTTP.

mod_auth_digest

Вместо этого вы можете использовать mod_auth_digest, поскольку с его помощью вы можете указать несколько URI, которые будут находиться в одном и том же «защитном пространстве». Однако с этим методом аутентификации есть две новые проблемы:

  1. Не очень хорошо масштабируется, потому что вы не можете использовать подстановочные домены.
  2. Совместимость браузера не так хороша. (См. документацию о том, как заставить его работать с IE.)
...