Sto cercando di capire come implementare il seguente flusso di autenticazione:Protezione RESTful API in Google App Engine
- L'utente accede a un'applicazione web (più probabilità di essere scritto utilizzando Ruby on Rails) ed autentico (ad es. nome utente/password).
- Il client utilizza i dati tramite AJAX fornito da un'API RESTful creata su Google App Engine (Python, webapp2).
Requisiti:
- Solo gli utenti autenticati nell'applicazione web (Rails) dovrebbero essere in grado di accedere all'API ospitato su App Engine.
- Gli utenti possono avere ruoli diversi nell'applicazione Web (Rails) e l'API (App Engine) deve sapere quali ruoli sono associati a un determinato utente per limitare l'accesso a determinati dati.
- Il client deve essere in grado di chiamare l'API (App Engine) direttamente tramite AJAX, senza instradare tutte le richieste tramite l'applicazione Web (Rails).
Sto cercando suggerimenti su come implementare tale flusso di lavoro. Dovrei usare OAuth (o OAuth2) per accedere all'API? Il provider OAuth dovrebbe vivere su App Engine e l'applicazione Web (Rails) richiede all'API un token per conto dell'utente? In tal caso, qual è il modo migliore per consentire solo all'applicazione Web (Rails) di richiedere token OAuth? O dovrei considerare una strategia completamente diversa?
Qualsiasi suggerimento è molto apprezzato. Sto anche cercando suggerimenti di librerie per implementare OAuth nel contesto sopra.