У меня есть, на мой взгляд, довольно сложный вопрос, поэтому я постараюсь сформулировать его здесь.
Я ищу решение для единого входа (SSO). Мне известны многие варианты, но я исключил большинство из них, добавляя критерии, которым они должны соответствовать. Вот критерии:
1.) SSO необходимо добавить в существующую «систему».
2.) Существующая «система» состоит из «X» веб-сайтов.
3.) Все «x» веб-сайты являются e -коммерция.
4.) Все веб-сайты принадлежат компании Y, для которой 95% системы было построено собственными силами.
5.) Все веб-сайты из числа «X» относятся к одному и тому же Веб-ферма.
6.) Все веб-сайты имеют следующие общие компоненты:
- DAL (уровень доступа к данным)
- База данных (тележки, заказы, пользователи, инвентарь и т. Д.)
- Аутентификация (проверка подлинности форм как в WebForms, так и в MVC).
7.) Для того, чтобы текущая среда работала, Machine Key уже были синхронизированы между серверами с балансировкой нагрузки (и были в течение некоторого времени).
8.) Высокая доступность и стабильность необходимы из-за очень большой объем трафика.
Все эти критерии привели меня к выбору WIF и настраиваемой службы STS для использования с нашими существующими службами аутентификации членства. Такие вещи, как OpenID и другие решения с открытым исходным кодом, похоже, склоняются к совместимости между компаниями; Что не нужно и не нужно. Идеальное решение будет на 100% внутренним и позволит пользователю войти в систему на веб-сайте «1», делать все, что они хотят, а затем перейти на веб-сайт «2» (также размещенный за балансировщиком нагрузки и, возможно, даже на том же веб-сервер, поскольку пользователь был для веб-сайта "1") и уже вошел в систему.
Вот список альтернативных методов, которые я рассмотрел, и соответствующие причины для их исключения (или мне следует пересмотреть некоторые из этих альтернатив?).
- OpenID: это было исключено по нескольким причинам, в основном потому, что моя организация ищет «внутренний» SSO, и интеграция с внешними веб-сайтами или система идентификаторов, используемая с внешними веб-сайтами, нежелательна.
- CAS: По большей части это тоже кажется достойной альтернативой. В конечном итоге это было исключено, потому что технологии, которые он использует (Java, Apache, Maven и т. Д.), Потребуют дополнительных усилий и денег для понимания, внедрения, поддержки и расширения (в первую очередь .NET Shop).
- OAuth: похоже, что он больше ориентирован на раскрытие защищенных данных через веб-службы. Полностью настраиваемый (http://www.codeproject.com/KB/aspnet/CrossDomainSSOModel.aspx): у полностью индивидуализированного подхода может быть слишком много времени на реализацию, и безопасность в этом методе больше беспокоит.
- DotNetOpenAuth: зависит от OpenID.
Таким образом, возникает вопрос: будет ли WIF работать в нашей существующей среде с учетом балансировщика нагрузки и уже общих данных учетных записей пользователей на веб-сайтах, или есть лучший подход?
Пожалуйста, дайте мне знать, если вам нужны какие-либо разъяснения.
РЕДАКТИРОВАТЬ:
Просто чтобы прояснить, чего я хочу достичь (или думаю, что пытаюсь достичь, учитывая проведенное мной исследование):
Текущая настройка (JPEG, размещенный в Dropbox)
Желаемая настройка (JPEG, размещенный в Dropbox)