Реализация SSO в веб-ферме .NET для нескольких сайтов электронной коммерции с WIF?

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

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

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

  • DAL (Data Access Layer)
  • База данных (корзины, заказы, пользователи, инвентарь и т.д...)
  • Аутентификация (Forms Auth в WebForms и MVC).

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

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

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

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

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

Пожалуйста, дайте мне знать, если вам нужны какие-либо разъяснения.

EDIT:

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

Текущая установка (JPEG размещен на dropbox)
Желаемая установка (JPEG размещен на dropbox)

7
задан ooPeanutButter 7 October 2011 в 13:35
поделиться