Общая аутентификация между SAAS / облачным веб-приложением и настольным приложением

StackOverflow https://stackoverflow.com/questions/2356110

Вопрос

Простой сценарий:

Допустим, у нас есть веб-приложение в облаке, которое позволяет пользователям регистрироваться с помощью OpenID.(Я открыт для использования Windows Live ID в качестве альтернативы) Они могут входить в систему и обновлять некоторые метаданные, например, какой у них любимый цвет.

Если я теперь хочу получить эту информацию от настольного клиента, как мне это сделать?Вероятно, мне придется предоставить веб-сервис, чтобы запросить эту информацию, но как насчет аутентификации?

Там есть Точка netopenauth и вот тут-то Основа идентификации Windows, и у нас есть CardSpace и т.д.
Но с чего, черт возьми, мне начать?Какой из них мне нужен?Нужны ли мне все 3?
А что насчет STS, есть ли что-нибудь для OpenID / Windows Live ID?

Кто-нибудь видел образец, использующий эти технологии, которые будут делать то, что я ищу?Есть какие-нибудь указания?

Это было полезно?

Решение

Разделите в своем сознании понятия аутентификации и авторизации.Вы проверяете подлинность пользователей на своем веб-сайте Только.Вы можете сделать это с помощью OpenID, InfoCard, STS или username + password.Клиентские приложения, которые обращаются к вашей службе за информацией о конкретном пользователе, должны быть уполномоченный, что традиционно означает, что они запрашивают у пользователя его имя пользователя + пароль, что является антишаблоном и выходит из строя, когда вы используете более надежные или альтернативные учетные данные, такие как OpenID или InfoCard, как вы видите.

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

DotNetOpenAuth поддерживает этот сценарий в полном объеме.Он поставляется с примерами сайтов OAuth и OpenID.Я рекомендую вам ознакомиться с любым из шаблоны проектов которые демонстрируют вход в OpenID (а web forms one даже включает в себя вход в InfoCard в качестве опции), а также поставщика услуг OAuth, что позволяет ему работать как для веб-пользователей, так и для авторизации этих клиентских приложений прямо из коробки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top