Общая аутентификация между веб-приложением SAAS / Cloud и настольным приложением - PullRequest
3 голосов
/ 01 марта 2010

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

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

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

Это DotNetOpenAuth и Windows Identity Foundation , у нас есть CardSpace и т. Д.
Но где, черт возьми, мне начать? Какие из них мне нужны? Нужно ли мне все 3?
А как насчет STS, есть ли что-нибудь для OpenID / Windows Live ID?

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

1 Ответ

2 голосов
/ 02 марта 2010

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

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

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

...