次の認証フローを実装する方法を見つけようとしています。
- ユーザーは Web アプリケーション (Ruby on Rails を使用して記述されている可能性が最も高い) にアクセスし、認証 (ユーザー名/パスワードなど) を行います。
- クライアントは、Google App Engine (Python、webapp2) 上に構築された RESTful API によって提供される AJAX を介してデータを消費します。
要件:
- Web アプリケーション (Rails) で認証されたユーザーのみが、App Engine でホストされている API にアクセスできる必要があります。
- ユーザーは Web アプリケーション (Rails) でさまざまな役割を持つことができ、API (App Engine) は、特定のデータへのアクセスを制限するために、特定のユーザーに関連付けられている役割を知る必要があります。
- クライアントは、Web アプリケーション (Rails) を介してすべてのリクエストをルーティングすることなく、AJAX を介して API (App Engine) を直接呼び出すことができる必要があります。
このようなワークフローを実装する方法についての提案を探しています。API へのアクセスに OAuth (または OAuth2) を使用する必要がありますか? OAuth プロバイダを App Engine に配置し、Web アプリケーション (Rails) がユーザーに代わって API にトークンを要求する必要がありますか? もしそうなら、Web アプリケーション (Rails) だけが OAuth トークンを要求できるようにする最善の方法は何ですか? それとも、まったく別の戦略を検討する必要がありますか?
どんな提案でも大歓迎です。上記のコンテキストで OAuth を実装するためのライブラリの提案も探しています。