OpenID + OAuth для Webapp и Desktop / Mobile приложения Аутентификация и авторизация - PullRequest
5 голосов
/ 20 мая 2011

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

Чего я не знаю, так это

  • Это правильный подход?
  • Каким будет рабочий процесс для этого?
  • Какие данные мне нужны в моей базе данных на пользователя / OpenID? Сохраняю ли я «учетную запись», а затем, когда они проходят проверку подлинности с помощью OpenID, я разрешаю им создавать токен OAuth для мобильного приложения?

В идеальном мире я мог бы иметь кнопки, аналогичные кнопкам на https://stackoverflow.com/users/login, как для моего WebApp, так и для моих настольных и мобильных приложений, которые позволили бы пользователям просто войти в систему с помощью своей учетной записи Google или Facebook. , это возможно? Простота для пользователей имеет первостепенное значение, потому что моя база пользователей не воспримет ничего сложного удаленно.

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

Было бы лучше решить эту проблему и разрешить пользователям проходить аутентификацию на моем сайте с помощью OpenID, а затем я предоставляю свою собственную схему OAuth для своих настольных и мобильных клиентов?

Ответы [ 3 ]

1 голос
/ 20 мая 2011

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

0 голосов
/ 16 июня 2011

Это рабочий процесс, который я разработал, и до сих пор думаю, что он работает хорошо.

Пользователь должен пройти аутентификацию на сайте через сторонний OpenID / Facebook / и т. Д. (Дружественный для мобильных устройств сайтимеется в наличии).Затем в своем «профиле» они могут сгенерировать «ключ» API, который они могут скопировать / вставить в свое клиентское программное обеспечение.Он не на 100% прозрачен для пользователя, но довольно хорош.

0 голосов
/ 26 мая 2011

То, на что вы должны обратить внимание, - это Windows Identity Framework (WIF), он будет работать аналогично для веб-приложений или приложений для настольных ПК, использующих идентификацию на основе утверждений.Вы должны сохранить токен авторизации для каждого пользователя (вместе с любой другой необходимой вам информацией) и получить его в заголовке авторизации аутентифицированного HTTP-запроса.oAuth - это протокол для передачи авторизационных запросов и ответов.WIF - это набор инструментов .NET для упрощения этого взаимодействия.

Для получения дополнительной информации посетите домашнюю страницу WIF и следующий блог (не мой):

http://msdn.microsoft.com/en-us/security/aa570351

http://blogs.msdn.com/b/vbertocci/

...