2011-09-20 9 views
7

Attualmente sto valutando la possibilità di creare un'applicazione per la distribuzione nel cloud azzurro. Il motivo principale per considerare Azure su Amazon è il servizio di controllo degli accessi. Desidero accettare il maggior numero possibile di credenziali per la mia applicazione, in particolare Facebook.Come si autentica un'applicazione WPF client con un servizio WCF su Azure?

Alcuni utenti useranno l'applicazione basata su HTML, altri un'applicazione client WPF. La domanda è: come posso autenticare il client utilizzando qualsiasi provider che desiderano e quindi comunicare con il servizio WCF. Suppongo di dover utilizzare il componente del browser Web nella mia applicazione o di aprire un browser esterno (supporterà idealmente entrambe le opzioni per gli utenti paranoici), ma non sono chiaro come utilizzare la connessione per il servizio WCF .

+1

+1 Interessante domanda. Non sono sicuro che ci sia una risposta facile, ma guarderò questo. –

+1

Appena trovato http://msdn.microsoft.com/en-us/IdentityTrainingCourse_SilverligthAndIdentity2010 che potrebbe rivelarsi utile, lo sto leggendo ora. – ForbesLindesay

+0

Sfortunatamente l'esempio di fuori del browser usa username e password quindi non supporterebbe facebook – ForbesLindesay

risposta

0

Considerare la separazione dell'autenticazione dell'utente con l'applicazione dall'autenticazione tra l'applicazione e il servizio WCF.

Per proteggere l'accesso al servizio WCF, è possibile utilizzare l'ACS per implementare l'autenticazione utilizzando un token Web semplice (SWT). Ci sono diversi esempi di questo disponibili attraverso il tuo motore di ricerca di scelta.

Mi spiace di non poterti dare un esempio più concreto al momento. Sono mobile con un i-device e quindi ho un accesso limitato agli strumenti.

+0

Il servizio WCF deve sapere chi è l'utente, e essere in grado di garantirne l'autenticità, non sono del tutto chiaro su come la vostra soluzione intende fornire questo. Il SWT autentica l'app o l'utente? – ForbesLindesay

0

Penso che il tuo intento sia un po 'come autenticare/autorizzare gli utenti per questo servizio WCF giusto? In questo caso è possibile consultare l'esempio "Applicazione per telefono di Windows 7": http://msdn.microsoft.com/en-us/library/gg983271.aspx. Qui vedrai che questo esempio sta usando il protocollo "javascriptnotify".

Per il controllo WebBrowser di WPF ci sono molti articoli che descrivono come ottenere notifiche dal javascript nel DOM.

In questo modo è possibile ottenere un token per l'applicazione WPF e quindi sarà necessario utilizzare lo stesso token per l'autenticazione nel servizio WCF.

Nel caso dell'applicazione Web è possibile ottenere il token dal modulo WSFam. Un modo per farlo potrebbe essere la registrazione per l'evento SecurityTokenReceived su WSFam.

In questo modo per entrambi gli scenari è possibile ottenere un token SAML.

Quindi è possibile creare il proprio SAML TokenProvider personalizzato per WCF e utilizzare il token SAML ricevuto da ACS per comunicare con il server.

0

Quello che stai cercando è chiamato 'federazione attiva'. Vedere this question

In genere, i client Web utilizzeranno il modulo passivo, in cui vengono reindirizzati a una pagina di accesso di proprietà di un servizio token di sicurezza. Non è possibile reindirizzare un'applicazione wpf o winforms, quindi l'applicazione deve eseguire le mozioni che il browser esegue automaticamente dietro le quinte, inclusa la negoziazione e la memorizzazione nella cache del token di sicurezza ricevuto dal servizio token di sicurezza e quindi la presentazione su ogni richiesta.

Problemi correlati