Реализовать единый вход в .NET Web Farm для нескольких сайтов электронной коммерции с WIF? - PullRequest
7 голосов
/ 06 октября 2011

У меня есть довольно сложный вопрос, поэтому я постараюсь сформулировать его здесь.

Я ищу решение с единым входом (SSO).Мне известны многие варианты, но я исключил большинство из них, так как я добавляю критерии, которым они должны соответствовать.Вот критерии:

1.) Единый вход должен быть добавлен к существующей «системе».
2.) Существующая «система» состоит из «X» количества веб-сайтов.
3.) Все веб-сайты "x" являются электронной коммерцией.
4.) Все веб-сайты принадлежат компании Y, для которой 95% системы было построено собственными силами.
5.) Каждый изколичество сайтов "X" находится в одной веб-ферме.
6.) Все сайты имеют следующие компоненты:

  • DAL (уровень доступа к данным)
  • База данных (тележки, заказы, пользователи, запасы и т. Д.)
  • Аутентификация (Аутентификация форм в WebForms и MVC).

7.) Для текущей средыДля работы Machine Key уже синхронизированы между серверами с балансировкой нагрузки (и в течение некоторого времени).
8.) Требуется высокая доступность и стабильность из-за очень большого объема трафика.

Все эти критерии привели меня к пути WIF и пользовательской STS для использования с нашими существующими службами аутентификации участников.Такие вещи, как OpenID и другие решения с открытым исходным кодом, похоже, склоняются к взаимодействию между компаниями;Который не нужен или не хотел.Идеальное решение будет на 100% внутренним и позволит пользователю войти на веб-сайт «1», сделать все, что он хочет, а затем перейти на веб-сайт «2» (также размещенный за балансировщиком нагрузки и, возможно, даже на том же самом сайте).веб-сервер как пользователь был для веб-сайта "1") и уже вошел в систему.

Вот список альтернативных методов, которые я рассмотрел, и соответствующая причина их исключения (или я должен пересмотретьнекоторые из этих альтернатив?).

  • OpenID: это было исключено по нескольким причинам, главным образом потому, что моя организация ищет «единый» единый вход и интеграцию с внешними веб-сайтами или систему идентификации, используемую свнешние сайты нежелательны.
  • CAS: По большей части это также кажется достойной альтернативой.В конечном итоге это было исключено, поскольку используемые им технологии (Java, Apache, Maven и т. Д.) Потребуют дополнительных усилий и средств для понимания, реализации, поддержки и расширения (в первую очередь .NET Shop).
  • OAuth: похоже, он больше ориентирован на предоставление защищенных данных через веб-сервисы.Полностью настраиваемый (http://www.codeproject.com/KB/aspnet/CrossDomainSSOModel.aspx): Полностью настраиваемый подход может иметь слишком большое время реализации, и безопасность более важна для этого метода.
  • DotNetOpenAuth: зависит / зависит от OpenID.

Таким образом, вопрос заключается в следующем: будет ли WIF работать в нашей существующей среде с учетом балансировки нагрузки и уже совместно используемых данных учетных записей пользователей на разных веб-сайтах или есть лучший подход?

Пожалуйста, дайте мне знать, если вам нужнолюбое уточнение.

РЕДАКТИРОВАТЬ:

Просто чтобы уточнить, чего я хочу достичь (или думаю, что я пытаюсь достичь, учитывая проведенное исследование), это:

Текущая настройка (JPEG размещен в Dropbox)
Требуемая настройка (JPEG размещена в Dropbox)

1 Ответ

2 голосов
/ 06 октября 2011

ADFS v2.0 аутентифицируется только против AD. Если ваш текущий метод аутентификации является чем-то другим (например, SQL Server), вам нужен пользовательский STS.

Являются ли все эти приложения ASP.NET?

Если это так, все они должны быть активированы через WIF.

Если нет, например, если Java, вы должны будете защитить их с помощью другого решения, например OpenSSO / Ping Объедините и интегрируйте этот продукт с ADFS.

Если Classic ASP, есть способы разрешить ADFS обрабатывать аутентификацию, но авторизация является проблемой. Роли будут находиться внутри объекта утверждений, к которому у Classic ASP нет доступа. Вы также можете использовать C2WTS для этого.

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

Вы можете загрузить баланс сайтов ADFS.

ADFS, безусловно, может включить единый вход для всех ваших сайтов. Это также потенциально позволяет вам объединяться с другими сайтами / организациями и использовать внешние учетные данные (например, Facebook) через Azure ACS, если вам нужно учесть это в будущем.

Он также позволяет вам интегрироваться с SharePoint 2010, CRM Dynamics 2010 и Office 365. Все они поддерживают заявки.

...