Я разрабатываю приложение для Android, которое требует от пользователей регистрации и входа на веб-сайт, а затем использовать эту регистрационную информацию в приложении для Android. Должен ли я использовать oauth или openid или есть что-то лучше, чтобы это не требовало разработки единой системы аутентификации?
OAuth/OpenID - что я должен использовать?
Ответ 1
OpenID
Если вы просто хотите аутентифицировать пользователя в своем приложении Android без обмена данными между вашим приложением и данными пользователя, хранящимися и управляемыми сторонним поставщиком услуг (например, google, flickr, facebook,....), тогда OpenID может быть лучшим вариантом для вас.
Существует Java-библиотека, которая должна работать на платформе Android под названием openid4java.
OAuth
OAuth, хотя часть рабочего процесса включает аутентификацию с поставщиком услуг OAuth, больше сосредоточена на части авторизации, поскольку она в значительной степени не знает основополагающего механизма аутентификации.
Если вы хотите, чтобы ваше приложение действовало от имени пользователя (для извлечения пользовательских данных, хранящихся у стороннего пользователя, поддерживающего oauth), OAuth является интересным вариантом. OAuth не может получить идентификатор пользователя, он просто действует как механизм авторизации для уже идентифицированного пользователя.
Signpost - это Java-библиотека, которая работает на Android.
OpenID Connect
Для ранних усыновителей еще одно интересное решение на горизонте - Open ID connect, в котором сочетаются лучшие из двух миров.
Взгляните на следующие сообщения для получения дополнительной информации.
- В чем разница между OpenID и OAuth?
- http://softwareas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the-same-thing
- http://thenextweb.com/socialmedia/2010/11/04/facebook-connect-oauth-and-openid-the-differences-and-the-future/
И, конечно, спецификации: