Приложение Android + API веб-сервера с использованием федеративного входа или OpenID (БЕЗ GAE)

У меня есть приложение для Android, которому необходимо загружать данные в API (затем API сохранит данные в базе данных MySQL). Я хотел бы использовать процедуру федеративного входа (Google) или аутентификации OpenID, чтобы пользователю не нужно было регистрировать адрес электронной почты и пароль для моего приложения, а вместо этого он мог использовать Google (или другую учетную запись), сохраненную в AccountManager.

Вплоть до начала этого года в решении использовался GAE по знаменитому рецепту Ника Джонсона. Но с тех пор, как Google начал взимать плату за использование GAE, это решение больше не является жизнеспособным. ПОЖАЛУЙСТА, НЕ РЕКОМЕНДУЕТ ИСПОЛЬЗОВАТЬ GAE.

Кому-нибудь удавалось решить проблему аутентификации с помощью Federated Login OR OpenID и затем получить авторизацию на стороннем (вашем) API веб-сервера?

ПРИМЕЧАНИЕ: OAuth будет простым решением для авторизации, за исключением того, что он будет полагаться на взаимодействие (доверенным образом) с ранее аутентифицированным потребителем, что не относится к случаю, когда вы аутентифицируете пользователя приложения (на мобильном телефоне) с помощью FedLogin или OpenID. OAuth работает, если мое приложение (мобильный + веб-сервер) аутентифицирует пользователя (и я храню логин + пароль - это ТОЧНО то, чего я пытаюсь избежать), но не в том случае, если Google (или FB) сделает это за вас.


person tony gil    schedule 31.07.2012    source источник
comment
Спасибо за работу в копировальном бюро @SaDec! Ой, я имел в виду: Спасибо за работу в копировальном бюро, @SaDec. ржу не могу   -  person tony gil    schedule 31.07.2012
comment
Извини, я тебя не понимаю. Я просто хочу заработать 2 очка за каждое редактирование :-D   -  person Sa Dec    schedule 31.07.2012
comment
@SaDec, я благодарил тебя за помощь. В журналистике COPYDESK - это тот, кто исправляет грамматику и орфографию, прежде чем репортер сможет опубликовать статью. это очень важная работа. Я серьезно вас благодарил, потому что мне лень писать заглавными буквами и писать правильно.   -  person tony gil    schedule 01.08.2012
comment
Пожалуйста :-) . Спасибо за добрые слова. Вы научили меня новой фразе.   -  person Sa Dec    schedule 05.08.2012


Ответы (1)


Это то, что делает OpenID Connect. Демо-приложение здесь.

Что касается GAE, у него по-прежнему есть бесплатный уровень (28 часов работы с интерфейсом, достаточно для работы 24/7), и этого должно быть достаточно для вас, если вы не получаете большого трафика. Как бы то ни было, вы должны где-то запустить сервер (даже если это ваша собственная машина), поэтому сделать это полностью бесплатным невозможно. Так что да, GAE - жизнеспособный вариант. Вы можете начать бесплатно и при необходимости увеличивать масштаб. Есть и другие причины избегать GAE, но «я должен (в какой-то момент) заплатить (что-то), поэтому выбросить это» - определенно неправильный образ мышления.

person Nikolay Elenkov    schedule 06.08.2012
comment
Вы абсолютно правы, что расходы неизбежны. Моя проблема с продуктами Google заключается в том, что Google меняет коммерческую политику без предварительного уведомления. Хотя я могу оценить стоимость безопасных серверов на следующие 5 лет, я не могу этого сделать, если использую технологию Google. Мне пришлось отказаться от кода с gmaps. поэтому, несмотря на свои отличные продукты, Google не является надежным партнером для коммерческих продуктов. как Foursquare и Apple, я не буду писать код, работа которого зависит от продукта Google. это коммерческая стратегия, а не технологический императив. - person tony gil; 07.08.2012
comment
Я был готов запустить коммерческий продукт с использованием карт Google, когда в этом году они полностью изменили свою коммерческую политику и сделали весь мой код бесполезным. Мне повезло, что это произошло до запуска, и у меня не было коммерческих обязательств перед покупателями. Я только что потерял 1000 часов программирования на Java, плюс-минус. сожги меня один раз, позор тебе - сожги меня дважды, позор мне. - person tony gil; 07.08.2012
comment
я проверил ваш ответ. на данный момент OpenID Connect все еще находится на заключительной стадии утверждения, согласно мнению большинства авторов. сам сайт говорит, что он находится в черновике исполнителя. предложенный пример основан на GAE. я проголосовал за, потому что OpenID Connect может в какой-то момент в ближайшем будущем стать решением. спасибо! - person tony gil; 07.08.2012
comment
Правильно, это не окончательно. Но и OAuth2 тоже не является, тем не менее, все его используют :) Если вы можете жить с необходимостью обновлять свой код по мере развития спецификаций, возможно, стоит попробовать. Если вам сейчас нужен проверенный и стабильный продукт, возможно, придется подождать пару лет. - person Nikolay Elenkov; 07.08.2012
comment
да, Николай, моя проблема в том, что я не мог найти ничего, что я мог бы эффективно адаптировать. Но даю слово, ЕСЛИ я смогу заставить это решение работать, я снова открою награду и дам вам 50 баллов. если никто другой не публикует ничего полезного, вы получите полные 100 баллов, ЕСЛИ я смогу заставить openid connect работать. - person tony gil; 09.08.2012
comment
Не беспокойтесь, я здесь не ради денег :) Поделитесь тем, что сработало для вас, это будет интересно. - person Nikolay Elenkov; 09.08.2012