2011-10-12 20 views
10

Jestem ogólnie zaznajomiony z DotNetOpenAuth i OAuth w ogóle, ale pod względem rozwoju Web API, jaki jest najlepszy sposób na zablokowanie usługi internetowej w zakresie następujących kryteria:Najlepszy sposób na uwierzytelnianie w API .NET WCF Web API

  • Łatwość wdrożenia
  • Interoperacyjność/kompatybilność z platformami stojących użytkownik końcowy (iOS, Android, Win Phone Flex ...)
  • , czy nie jest wyraźnie oparte na standardach (jak Przykład OAuth)

Dzięki!

Odpowiedz

5

zajrzyj tutaj: OAuth 2.0 in Web API

Wewnątrz projektu WebApiContrib istnieją również podstawowe próbki uwierzytelniania, która jest prosta, ale nie powinny być używane bez SSL.

+0

Sprawdzanie tego! Dzięki. –

+4

OK, to jest pomocne, ale oto moje pytanie: jak mam działać jako "Facebook" w podanym przykładzie? W artykule założono, że chcesz korzystać z zewnętrznego dostawcy autoryzacji OAuth. Chcę tutaj zbudować zarówno dostawcę komend, jak i serwis internetowy. –

0

Istnieje kilka implementacji webowych wcf do obsługi uwierzytelniania w Internecie. Zrobiłem jedną jak również @http://misaxionsoftware.wordpress.com/2011/07/29/secure-restful-web-service-by-wcf-web-api-no-https-seriously/

Uwaga: kod jest oparty na podglądzie 3, niektóre nazwy klasy zmieniło się w podglądzie 5.

Pomysł wdrożenia jest zapewnienie komunikacji zapewnione bez SSL.

Jest łatwy w budowie. Funkcja jest przezroczysta dla usługi, ponieważ cała praca jest wykonywana w module obsługi komunikatów. Nie powinieneś zawracać sobie głowy funkcją uwierzytelniania w swojej metodzie serwisowej.

Kompatybilny z punktem końcowym, w którym jest obsługiwane szyfrowanie RSA.

Standardy oparte hmm ... Standardy różni się od przypadku do przypadku ...

3

na DotNetOpenAuth zip do pobrania zawiera usługę WCF próbki, która jest chroniona przez OAuth.

+0

Właśnie pobrałem próbki. Doceniam tak wiele próbek, ale jestem trochę zdezorientowany przez wszystkie nazwy projektów i terminologię. Czy istnieje konkretna próbka, która demonstruje użycie Oauth2 do samodzielnego dostarczenia tokena oautha zamiast używania znanego dostawcy openid (np. Google)? – Adam

+1

Przykład "OAuthResourceServer" demonstruje użycie tokenu dostępu OAuth 2 do autoryzacji. Przykład "OAuthAuthorizationServer" demonstruje wydawanie tych tokenów dostępu. Fakt, że serwer autoryzacji używa identyfikatora OpenID do zalogowania użytkownika jest ortogonalny do przepływu OAuth i można go zastąpić dowolną potrzebną. –