Ho un servizio web REST che implementa già il meccanismo di autenticazione oauth tramite browser.
Vorrei esporre la mia API a un numero di client mobili programmati da parte di terzi. In questo scenario sono coinvolti 4 attori:
- La mia applicazione Web A
- Il provider di autenticazione P (ad esempio Facebook / Google / Twitter / etc)
- Il client per applicazioni mobili C (realizzato da uno sviluppatore di terze parti X)
- L'utente finale U
Ho letto molto sull'autenticazione a due gambe ea tre gambe con Oauth2 ma Ho capito che nessuna delle due soluzioni è fattibile.
Il primo perché coinvolge solo C e P .
Quest'ultimo perché coinvolge A , P e U (ovvero A e C sono prodotti dello stesso sviluppatore).
Per l'autenticazione del client gestisco effettivamente la situazione generando un paio di chiavi per lo sviluppatore del client C chiede di autenticare le sue app contro il mio servizio A e firmare ogni richiesta. La mia domanda è: poiché la mia domanda è naturalmente registrata su developers.facebook.com e le mie chiavi sono memorizzate nel server web, come può lo sviluppatore di terze parti utilizzare la mia API e autenticare l'utente finale? Deve registrare la sua app mobile C su Facebook e condividere il suo token di accesso con la mia app web A ?