2013-03-30 1 views
5

Sto sviluppando un'API REST OAUTH 2 per un sito Web su cui sto lavorando. Abbiamo un'app mobile nativa ufficiale che utilizza questa API e sta pianificando di rendere l'API aperta agli sviluppatori di terze parti. La nostra app mobile nativa avrà più autorizzazioni rispetto alle app di terze parti. Lo sto facendo impostando le autorizzazioni in base all'id client o all'ID app. Sto usando passwordgrant type per l'app ufficiale e implicitgrant type per le app di terze parti.Come autenticare un'app attendibile utilizzando OAUTH 2

Ma il problema è che come noi non stiamo usando un client_secret in entrambi i casi una terza parte può essere in grado di ottenere autorizzazioni elevate da qualche modo rubare il nostro ufficiale client_id e usarlo per ottenere l'accesso alle autorizzazioni elevate in API che è in esclusiva per l'app ufficiale.

C'è comunque un modo per impedirgli di farlo? Come funziona l'app ufficiale Facebook o Twitter?

risposta

1

è possibile utilizzare i token che è un hash di queste informazioni (client_id, Official app, day, ...) per l'applicazione

il 'Day' al fine di ottenere ogni giorno un nuovo token che minimizzano il risque

e questo gettoni per 3rd party (client_id, 3rd party, ...) Quindi nel tuo API aggiungere un func per ottenere informazioni dai token

Tutte le richieste da Api devono essere su SSL che vengono poi convalidate sul server per decidere se la richiesta deve essere elaborata/interrotta.

+0

Non ho capito. Stai dicendo che dovrei usare i token OAuth con l'app (client_id, Official, day, ...) ecc. Nell'API quando il client richiede un token. Che differenza farà? E cosa intendi con l'app ufficiale? – ajaybc

+0

'App ufficiale' e '3rd party' sono una stringa o un codice con esso è possibile identificare l'origine della richiesta; – Abdessamad