Благодаря приобретению у нас есть ряд продуктов, которые требуют аутентификации и авторизации. Продукты включают веб-сайты и клиентские приложения, клиентские приложения используют некоторые веб-сервисы. Мы являемся магазином .Net, и на серверах будет работать Server 2008, клиенты будут работать под управлением XP SP ?? и позже.
Пользователи продуктов не являются частью нашей организации и работают от отдельных пользователей с автономным ПК до пользователей в организациях, использующих Active Directory и т. Д.
В настоящее время нет общего хранилища аутентификации или идентификационных данных, и мы надеемся исправить это. Наши цели:
- Одно имя пользователя и пароль (или сертификат) для всех продуктов.
- В идеале - единый вход (легко, если мы запускаем веб-сайт из клиентского приложения, предположительно меньше, если пользователь сначала входит на веб-сайт, а затем запускает приложение на стороне клиента).
- Плюс обычный; надежный, масштабируемый ...
Как и у большинства компаний, у нас ограниченные ресурсы и плотный график.
Один из предложенных путей для аутентификации - это Kerberos, который, вероятно, является идеальным путем для аутентификации клиентского приложения в веб-службе, но я менее рад использовать его на веб-сайте, где пользователь может ввести имя пользователя и пароль, а также в Интернете. Сервер будет отвечать за оформление билетов (затем хранить билет в cookie-файле?). Я чувствую, что нам может быть лучше с одним хранилищем идентификаторов и нашей собственной службой аутентификации, которая берет имя пользователя и пароль, сравнивает их с отсортированным хешем, а затем выдает пользовательский токен безопасности, основанный на времени. Может быть, использовать SqlMembershipProvider?
Спасибо всем, кто прочитал это далеко. Kerberos лучше всего подходит для этого сценария или я должен искать в другом месте? Если это не подходит, почему бы и нет?
Мы также смотрим на AD LDS для авторизации, но я думаю, что этот пост уже достаточно длинный ...