Можно ли внедрить службу единого входа (Custom STS, WIF), чтобы она была высокой доступности (кластеризованная или в веб-ферме)? - PullRequest
1 голос
/ 10 октября 2011

Я недавно задал вопрос здесь: Внедрение SSO в .NET Web Farm для нескольких веб-сайтов электронной коммерции с WIF? , в котором изложены подробности моего следующего вопроса.

Краткое описаниеСуть вопроса / решения заключается в том, что ряд веб-сайтов, нуждающихся в решении единого входа, может быть реализован с использованием WIF с настраиваемой STS для проверки пользователей на наличие какого-либо SQLMembershipProvider.При разработке схемы для этой системы возникла другая проблема.

Цель идеи веб-серверов в веб-ферме состоит в устранении единой точки отказа (SPOF) для веб-сайтов, что приводит к повышению надежностидоставка услуг.Подобные стратегии хорошо документированы для серверов баз данных и почтовых серверов.Возможно ли реализовать решение единого входа без единой точки отказа в существующей среде высокой доступности с использованием пользовательских STS и WIF?Какие дополнительные шаги / стратегии необходимо будет предпринять, чтобы удалить этот SPOF?

Более или менее интересны вопросы:

  • Можно ли поместить пользовательскую STS в балансировку нагрузкисреда?
  • Можно ли разместить WIF в среде с балансировкой нагрузки (без использования сторонней реализации, такой как Azure)?
  • Какие конкретные технологические проблемы необходимо решить, чтобысделать это (или это может быть сделано так же, как веб-серверы)?
  • Это ВСЕ хорошая идея?Каковы некоторые потенциальные проблемы?

Я провел немало исследований в Интернете и не смог найти полного ответа на этот вопрос.Я все еще новичок в проверке подлинности на основе утверждений и федеративных удостоверений, поэтому простите меня, если я расплывчатый или тупой.

Пытаюсь ли я вставить квадратный колышек в круглое отверстие?

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

Ответы [ 2 ]

1 голос
/ 11 октября 2011
  • Можно ли разместить пользовательскую STS в среде с балансировкой нагрузки?

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

  • Можно ли разместить WIF в среде с балансировкой нагрузки (без использования сторонней реализации, такой как Azure)?

Как уже упоминалось в nzpcmad, вам необходимо синхронизировать машинные ключи между приложениями проверяющей стороны в среде с балансировкой нагрузки.Поскольку токен SAML зашифрован с использованием ключа компьютера, приложению необходимо расшифровать его с помощью того же ключа.

  • Какие конкретные технологические проблемы необходимо решить для достижения этой цели (илиможет ли это быть сделано так же, как веб-серверы?) *

См. другие ответы.

  • Является ли это В общем хорошей идеей?Какие потенциальные проблемы?

Да, высокая доступность и избыточность - очень хорошая идея.ADFS имеет встроенные возможности для работы в веб-ферме, но для пользовательского STS вам просто нужно убедиться, что конфигурация для вашего STS согласована между серверами.Я бы порекомендовал сохранить конфигурацию в базе данных, если это возможно.

1 голос
/ 11 октября 2011

• Может ли пользовательский STS быть помещен в среду с балансировкой нагрузки?

Да - хотя вам могут понадобиться «липкие сессии»

• Можно ли разместить WIF в среде с балансировкой нагрузки(без использования сторонней реализации, такой как Azure)?

WIF - это просто набор классов .NET, который добавляется в качестве ссылки в проект VS.Это позволяет приложению разрешать заявки.Вы не можете развернуть WIF "самостоятельно".Вы развертываете приложение с поддержкой утверждений.

• Какие конкретные технологические проблемы необходимо решить для достижения этой цели (или это можно сделать так же, как веб-серверы)?

Для ADFS с фермой серверов: «Вторичные серверы федерации хранят копию базы данных конфигурации AD FS с основного сервера федерации, но эти копии доступны только для чтения. Вторичные серверы федерации подключаются и синхронизируют данные с первичным сервером.сервер федерации в ферме, опрашивая его через регулярные промежутки времени, чтобы проверить, не изменились ли данные. Вторичные серверы федерации существуют, чтобы обеспечить отказоустойчивость для основного сервера федерации, одновременно обрабатывая запросы доступа с балансировкой нагрузки, которые отправляются на разные сайты в сетевой среде. "

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

• Является ли это ВСЕМ хорошей идеей?Каковы некоторые потенциальные проблемы?

Из памяти единственной проблемой, с которой мы столкнулись, была проблема «липких сессий».

Также см. Пошаговое руководство по ADFS 2.0 для обеспечения высокой доступности и высокой устойчивости

Обновление: посмотрите Программирование Windows Identity Foundation .Проблема заключается в том, что сеансовые файлы cookie WIF защищены ключом компьютера.Витторио предлагает:

  • Липкие сессии
  • Синхронизация ключей машин
  • Использование SSL-сертификата на каждой машине

В разделе естькнига о разработке кастомных стс.Я рекомендую это.

...