Attualmente sto tentando di utilizzare il flusso utente-agente OAuth 2.0 con un'applicazione C# clientide e sto incontrando una certa confusione relativa all'URI di reindirizzamento.OAuth Flusso utente-agente con l'app desktop C#
Poiché sto lavorando con un'applicazione client, non posso fornire un URL di reindirizzamento standard a un server web. Tuttavia, in base alle persone con cui sto provando ad autenticarsi (Salesforce, in questo caso), il flusso User-Agent è quello corretto da utilizzare per un'applicazione client.
La mia domanda è, cosa posso fare per catturare il token di accesso in questa situazione? Apparentemente posso creare una "risorsa locale accessibile al cliente", ma non conosco i meccanismi alla base di questo, e non riesco a trovare alcuna risorsa sull'argomento (in parte perché non so cosa cercare).
Qualsiasi suggerimento su dove dovrei iniziare a guardare sarebbe molto apprezzato.
Edit: Alcuni più di scavo ha rivelato la seguente questione StackOverflow:
How do I develop against OAuth locally?
sto facendo un po 'di indagare con quello che hanno suggerito, ma altri suggerimenti sarebbe grande pure.
Edit: Alcuni più alla ricerca ha rivelato questo articolo:
http://sarangasl.blogspot.com/2010/09/create-simple-web-service-in-visual.html
sente ancora come sto rovistando nel buio senza una comprensione del quadro più ampio, ma credo che ho bisogno di impostare un servizio Web locale utilizzando localhost e puntare il mio URI di reindirizzamento lì. Quindi utilizzerò il mio servizio Web per scartare la risposta dal server OAuth e far rispondere la mia domanda in modo appropriato. Altri aggiornamenti a venire.
Ooookay. Quindi, da quello che sono stato in grado di raccogliere, ho bisogno di creare un servizio web locale da fornire come callback per OAuth. Ho bisogno di ascoltare il servizio web e prendere il callback per passarlo alla mia app. Tuttavia, il servizio Web ASP.NET predefinito fornito da VS2010 non supporta i parametri URL, solo le chiamate API, pertanto, a quanto pare, è necessario utilizzare il kit di avviamento WCF Rest.
Sono completamente estraneo a tutto questo, quindi qualsiasi suggerimento sarebbe una manna dal cielo a questo punto. In generale, sto pensando di impostare un servizio di ripristino WCF locale, fornire l'URI locale a OAuth come callback e quindi catturare l'URL di callback utilizzando il servizio Rest. Quindi analizzo l'URL ed estrai il token di accesso. A questo punto, la mia app richiede il token di accesso o il mio servizio web "fornisce" il token alla mia app? I.e, dove dovrebbe essere il luogo di controllo?
Questa sarebbe un'opzione. Ma fai attenzione: l'utente può utilizzare alcuni trucchi sul tuo browser web come andare avanti e indietro nella cronologia del browser, l'aggiornamento della pagina, i timeout, l'interruzione della rete. Dovrai gestire tutti i codici di errore HTTP + tutti i trucchi del browser incorporato. Buona fortuna :) –
Inoltre, considera l'interfaccia utente della tua app che, probabilmente, sarà diversa da quella proposta da Salesforce, e non puoi modificarne l'impostazione predefinita perché non hai il controllo su di essa. –
Ugh, hai ragione. Dovrò dare un'occhiata alla sicurezza del browser embedded successiva. Per quanto riguarda l'interfaccia utente, la mia app è un processo in background che genera un popup su determinati eventi, quindi l'autenticazione è richiesta solo una volta per l'avvio dell'app (di solito una volta al giorno, al mattino). Grazie comunque per i suggerimenti, ho dimenticato le falle di sicurezza che potrebbero essere aperte con un'istanza IE incorporata. – sichinumi