2012-12-06 23 views
6

Sto facendo ricerche sul protocollo OAuth 2.0.OAuth 2.0 per applicazioni desktop e mobili

Sono rimasto bloccato nel problema della generazione di token bearer per applicazioni desktop/mobili che non funzionano su un server web.

Il flusso del protocollo OAuth 2.0 è chiaro per le applicazioni Web. Supponiamo che voglia accedere a protectedresource.com per conto dell'utente Alice, quindi Alice viene reindirizzato a https://protectedresource.com/oauth?redirect_uri=https://myapp.com/oauth&[...] in modo che il gestore delle risorse, dopo aver ottenuto il consenso, reindirizzi il browser di Alice a una pagina che raccoglierà il codice di autorizzazione e lo utilizzerà per ottenere il token al portatore.

Questo funziona bene e sicuro perché protectedresource.com riconosce myapp.com dominio e rilascia il portatore di token solo alle richieste provenienti da myapp.com

Se sono in esecuzione un'applicazione desktop, anche con il supporto di un browser (ad esempio incorporare un visualizzatore HTML in un Windows Form o qualcosa del genere) dove dovrei reindirizzare Alice dopo il consenso ??

Chi raccoglie il codice di autorizzazione? Come cambia il flusso di controllo?

Qualcuno ha esempi di implementazioni OAuth 2.0 in esecuzione su desktop o Android?

risposta

5

Il OAuth wiki lists numerous options è possibile utilizzare, che hanno tutti i lati negativi. Il modo più semplice è eseguire un'applicazione web che può mostrare il token all'utente, quindi l'utente copia il token (e forse il token di aggiornamento) nell'app desktop.

Se avete un sacco di tempo, allora si potrebbe indagare la registrazione di un URI personalizzato con il sistema operativo desktop, e quindi utilizzare tale come redirect_uri trasferire automaticamente alla vostra applicazione dal browser. Questo ha la migliore esperienza utente.

Un'app dannosa può facilmente fingere di essere l'app desktop in questi scenari e la sicurezza si basa sugli utenti che non installano app dannose.

Problemi correlati