Подтвердить что ты не робот

Зачем использовать субдомены для назначения арендаторов в многопользовательском веб-приложении?

Вопросы

  • Почему некоторые многопользовательские веб-приложения используют субдомены для назначения арендатора, а другие нет?
  • Существуют ли технические, конфиденциальные или соображения безопасности?
  • Зависит ли он от языка или структуры, используемой для разработки веб-приложения?
  • Это просто вопрос выбора стиля или разработчика?

Примеры веб-приложений с использованием поддоменов для назначения арендаторов

Пример веб-приложений, не использующих поддомены для назначения арендаторов

4b9b3361

Ответ 1

  • См. ниже.
  • Файлы cookie будут наиболее очевидными, а во-вторых, вы можете изменить настройки DNS для субдомена, но не для пути
  • Нет
  • Частично, см. выше.

Ответ 2

Существует несколько способов определения арендатора на уровне HTTP:

  • домен - арендатор определяется целым заголовком Host
  • субдомен - часть поддомена заголовка Host,
  • путь на основе пути - путь, обычно с помощью префикса host.com/tenantId/...
  • cookie based - значение cookie содержит идентификатор арендатора (хорошая структура шифрует это!)
  • пользовательский сеанс пользователя или некоторые записи данных на сервере

Вот ответы на ваши вопросы:

  • (Sub-) многопользовательская аренда домена хороша, если вы хотите дать пользователю представление о полностью изолированной аренде. Заказчику может потребоваться пользовательская страница приветствия и входа, отдельная пользовательская база и т.д. С другой стороны, многопользовательская аренда на основе маршрутов подходит для пользователей, которые не привязаны к одному пространству имен для арендаторов. Он в основном используется социальными сетями, такими как Facebook, GitHub и т.д.

    Домены
  • (Sub-) могут дать вам лучшую защиту от изоляции и безопасности для файлов cookie, совместного использования ресурсов с использованием исходного кода (CORS). Это делает кросс-арендатор CSRF или XSS немного сложнее. Более того, если у вас есть контроль над DNS или Load-balancer, вы можете назначить арендаторов различным IP-адресам (например, гео-маршрутизацию) или различным версиям приложения (например, бета-арендаторам). Вы можете назначить отдельный экземпляр приложения или сервер для ваших самых важных арендаторов. Таким образом, вы получаете дешевый инструмент для контроля риска одиночной точки отказа и всех яиц в одной корзине.

  • Любая веб-инфраструктура, предоставляющая вам доступ к HTTP-заголовкам (Host), является поддоменами. Любая серьезная веб-структура MVC должна давать вам субдомен как параметр действия напрямую или плагином.

  • Это определенно выбор дизайна. Если вы хотите узнать, как лучше всего подумать, какой уровень изоляции вы хотите для своих арендаторов. Если вы решите, но вы обнаружите, что путь не прав, вы можете перейти на другой уровень с помощью перенаправления HTTP 301.