Chiarimento su OAuth Client Secret

2

Ho un po 'di problemi a capire come utilizzare OAuth per proteggere un'API. Così ho sviluppato un servizio RESTful, che vorrei proteggere per l'accesso autenticato. Ho prima optato per HTTP Basic + TLS, ma poi ho deciso di supportare anche OAuth. La libreria di Jersey supporta OAuth1. Dopo averlo fatto funzionare, il primo utente di quell'API sarà un'applicazione web.

Quindi ho bisogno di registrare un consumatore, per ottenere una chiave del cliente, insieme a un segreto del cliente. Ho bisogno di questi due per avviare il flusso OAuth1. Pertanto il client (applicazione web) deve averli. Ma ciò significa che ogni utente di tale webapp ora ha il segreto e la chiave del cliente, ed è in grado di impersonare me come sviluppatore e attirare l'utente in trappole di phishing. Ciò vale anche, in misura minore, per altri client, che potrebbero prima necessitare di essere smontato Ma il problema fondamentale esiste ancora.

Ma deve esserci un equivoco dalla mia parte, poiché un tale problema sarebbe stato sicuramente ostacolato dall'adozione selvaggia di esso.

Una possibilità che mi viene in mente è, come sviluppatore client, avviare OAuth solo dal lato server. È questa la soluzione o non c'è un problema simile?

    
posta Angelo.Hannes 13.11.2014 - 09:41
fonte

1 risposta

2

OAuth può essere utilizzato in molti modi diversi. Se un token OAuth viene rilasciato alla tua applicazione web usando la tua chiave segreta (rendendo la tua applicazione web nel "client"), allora nessuno dovrebbe accedere a questo token , piuttosto il ruolo del tuo servizio web è per eseguire azioni per conto di altri clienti e la tua applicazione deve avere il controllo degli accessi in atto.

In alternativa, OAuth viene anche utilizzato per autenticare i browser. Quindi, se un browser passa attraverso un flusso OAuth a tre vie e quindi fornisce l'accesso dell'applicazione a una risorsa Web di terze parti. Quindi in sostanza il browser possiede questo token e sta permettendo al tuo servizio web di utilizzare questo token OAuth. Il client si fida del tuo servizio web per mantenere questo token OAuth un segreto.

    
risposta data 13.11.2014 - 16:26
fonte

Leggi altre domande sui tag