2011-10-12 17 views
10

Ho una certa familiarità con DotNetOpenAuth e OAuth in generale, ma in termini di sviluppo dell'API Web, qual è il modo migliore per bloccare un servizio Web in termini di quanto segue criteri:Il modo migliore per gestire l'autenticazione su .NET WCF Web API

  • Facilità di implementazione
  • interoperabilità/compatibilità con le piattaforme per l'utente finale di fronte (iOS, Android, Windows Phone, Flex ...)
  • o se non è chiaramente basata su standard (simile OAuth ad esempio)

Grazie!

risposta

5

prega di dare un'occhiata qui: OAuth 2.0 in Web API

All'interno del progetto di WebApiContrib ci sono anche campioni di base di autenticazione che è semplice, ma non devono essere utilizzati senza SSL.

+0

Controllare questo! Grazie. –

+4

Ok, quindi è utile, ma ecco la mia domanda: come faccio ad agire come "Facebook" nell'esempio fornito? Nell'articolo si presuppone che si desideri utilizzare un provider di credenziali OAuth esterno. Voglio costruire sia il fornitore di credenziali che il servizio web qui. –

0

Ci sono un paio di implementazione wcf web api per gestire l'autenticazione su internet. Ho fatto uno pure @http://misaxionsoftware.wordpress.com/2011/07/29/secure-restful-web-service-by-wcf-web-api-no-https-seriously/

Nota: il codice si basa su Preview 3, qualche nome di classe è cambiato in Anteprima 5.

L'idea di implementazione è garantire una comunicazione sicura senza SSL.

È facile da costruire. La funzione è trasparente per il tuo servizio perché tutto il lavoro è svolto nel gestore di messaggi. Non ti preoccupare di chiamare la funzione di autenticazione nel tuo metodo di servizio.

Compatibile con il punto finale in cui è supportata la crittografia RSA.

basata su standard, hmm ... Standards varia da caso a caso ...

3

Il DotNetOpenAuth zip download include un servizio WCF campione che è protetto da OAuth.

+0

Ho appena scaricato i tuoi campioni. Apprezzo così tanti campioni, ma sono un po 'confuso da tutti i nomi e la terminologia del progetto. Esiste un campione specifico che dimostra l'uso di Oauth2 per fornire tu stesso un token oauth invece di utilizzare un provider openid conosciuto (come google)? – Adam

+1

L'esempio 'OAuthResourceServer' dimostra l'utilizzo di un token di accesso OAuth 2 per l'autorizzazione. L'esempio 'OAuthAuthorizationServer' dimostra l'emissione di questi token di accesso. Il fatto che il server di autorizzazione utilizzi OpenID per accedere all'utente è ortogonale al flusso OAuth e puoi sostituirlo con qualsiasi cosa tu voglia. –

Problemi correlati