Защита RESTful API в Google App Engine

Я пытаюсь понять, как реализовать следующий поток аутентификации:

  1. Пользователь получает доступ к веб-приложению (, скорее всего, написанному с использованием Ruby on Rails ), и аутентифицирует (, например, имя пользователя/пароль ).
  2. Клиент получает данные через AJAX, предоставляемый RESTful API, построенным на Google App Engine (Python, webapp2 ).

enter image description here

Требования:

  1. Только пользователи, прошедшие аутентификацию в веб-приложении (Rails ), должны иметь доступ к API, размещенному в App Engine.
  2. Пользователи могут иметь разные роли в веб-приложении (Rails ), и API (App Engine )должен знать, какие роли связаны с данным пользователем, чтобы ограничить доступ к определенным данным.
  3. Клиент должен иметь возможность вызывать API (App Engine )напрямую через AJAX, без маршрутизации всех запросов через веб-приложение (Rails ).

Я ищу предложения о том, как реализовать такой рабочий процесс. Должен ли я использовать OAuth (или OAuth2 )для доступа к API? Должен ли провайдер OAuth работать в App Engine, а веб-приложение (Rails )запрашивать у API токен от имени пользователя? Если да, то как лучше всего разрешить только веб-приложению (Rails )запрашивать токены OAuth? Или я должен рассмотреть совершенно другую стратегию?

Любые предложения приветствуются. Я также ищу предложения библиотек для реализации OAuth в контексте выше.

6
задан Leo 24 July 2012 в 10:27
поделиться