Совместное использование сеанса между двумя веб-приложениями .net 4.0 (домен и поддомен) с использованием кэша сеанса Windows Server AppFabric БЕЗОПАСНО

У меня есть два приложения, одно в основном домене, а другое в другом домене. Один из них — старый сайт, а другой — новый сайт. Мы постепенно преобразуем устаревший сайт (4.0), используя сочетание классического asp, веб-форм .Net2 и MVC3, в новый сайт (4.5), использующий MVC4. В настоящее время невозможно преобразовать весь устаревший сайт.

Требование состоит в том, чтобы беспрепятственно щелкнуть ссылку на любом сайте и перейти на другой сайт. Пользователь не должен замечать, что site1 не является частью site2 и наоборот. Аутентификация представляет собой сочетание аутентификации Windows за брандмауэром dmz и внешнего сайта, обращенного к клиенту, с использованием пользовательского входа в систему и SSL.

Сеанс пользователя и данные должны быть каким-то образом разделены между приложениями app1 и app2. Это правительственный сайт, поэтому безопасность имеет первостепенное значение. Это также будет в среде с балансировкой нагрузки под управлением Windows Server 2012.

Я не уверен в подходах к следующему:

  1. Лучший и самый безопасный способ поделиться этими сеансами. Appfabric на Win2012, State Server и SQL Server (я знаю, что AF может использовать его в качестве поставщика) — все это честная игра.

  2. Как плавно переходить на страницы пользовательского интерфейса браузера. Я думал о возможном использовании основного меню Unified UI с IFrame, загружающими либо App1, либо App2. Однако я чувствую, что это не лучший и не самый безопасный метод. Обязательным условием будут только пользователи с включенным javascript.

Я провел исследование по этой теме и просмотрел кеш сеанса Appfabric с общим идентификатором в веб-конфигурации, но я не уверен, является ли это предпочтительным способом или даже соответствует ли это части моего требования.

Любая помощь будет очень признательна.

Спасибо!


person FBDevHive    schedule 18.06.2013    source источник


Ответы (1)


Да, поставщик состояния сеанса AppFabic может легко обмениваться сеансами между приложениями. По умолчанию данные, отправляемые между клиентами кэша и кластером кэша, шифруются и подписываются. Кроме того, любые клиенты кластера кэша должны быть специально добавлены в список разрешенных учетных записей клиентов с помощью командлета Grant-CacheAllowedClientAccount. С этой точки зрения, это безопасно.

У меня есть два приложения, одно в основном домене, а другое в другом домене.

Вот в чем проблема. Всегда полезно просмотреть базовый сеанс. концепции. В качестве поставщика состояния сеанса AppFabric использует SessionID для получения/сохранения содержимого сеанса в распределенном кеше (примечание: это одинаково для всех поставщиков). По умолчанию значения SessionID сохраняются в файле cookie. Файлы cookie имеют область действия = домен (и путь): они сообщают браузеру, что файлы cookie должны отправляться обратно на сервер только для данного домена и пути. Очевидно, что бесполезно и небезопасно отправлять файлы cookie из домена A в домен B.

Совместное использование сеансов между веб-сайтами означает, что вы должны совместно использовать файлы cookie сеанса asp.net между веб-сайтами. Если сайт A размещен в домене A, а сайт B размещен в домене B, это невозможно (примечание: если у кого-то есть решение, мне очень интересно).

person Cybermaxs    schedule 21.06.2013