Где должна выполняться аутентификация: «Веб-сервер или AppServer»? - PullRequest
1 голос
/ 25 марта 2012

Рассмотрим следующую архитектуру, которая имеет два веб-сервера (для балансировки) и около 10 серверов приложений Java для обработки сервлетов.

Где, по вашему мнению, является подходящим местом для выполнения аутентификации.В ApacheWebserver или в пользовательском коде на одном из серверов приложений?

Если я выполняю аутентификацию на Webserver, как мы должны обрабатывать пользовательские вещи, такие как OPenId?

РЕДАКТИРОВАТЬ: Кроме того, каковы последствия выбора либо наПроизводительность, масштабируемость и безопасность?

1 Ответ

2 голосов
/ 25 марта 2012

Как обычно в вопросе об архитектуре, ответ зависит от многих вещей.

  • Делают ли веб-серверы что-либо, что требует защиты (например, обслуживание статического контента. Тогда вам придется выполнять аутентификациюна (или ранее) веб-сервере

  • веб-серверы или серверы приложений близки к максимальной емкости? Попробуйте выполнить аутентификацию на стороне

  • Может ли веб-сервер обрабатывать все требования аутентификации? Или необходима логика / информация, которой нет на веб-сервере (например, репутация здесь, в SO, которая влияет на то, что может делать пользователь). Требование о поддержке OpenId может быть такимограничивающий фактор.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...