2009-07-30 14 views
37

Czy są jakieś zalecane zasoby do wdrożenia niestandardowego dostawcy członkostwa, który używa oAuth? Celem byłoby, aby użytkownicy logowali się do mojej aplikacji ASP.NET MVC przy użyciu ich istniejących poświadczeń OAuth. Po uwierzytelnieniu użytkownika chciałbym wykorzystać wbudowane funkcje autoryzacji ASP.NET.oAuth Dostawca członkostwa ASP.NET

Dzięki.

Odpowiedz

45

Nie jestem pewien, czego szukasz, to OAuth.

OAuth służy do delegowania autoryzacji za pomocą tokenów. W zależności od tego, co robisz, masz również dwa scenariusze:

  1. Twoja aplikacja chce korzystać z niektórych danych użytkowników hostowanych przez dostawcę (np. Twitter lub google). W takim przypadku Twoja aplikacja byłaby konsumentem - krótko mówiąc, użytkownik musiałby się zalogować i wyrazić zgodę na autoryzację aplikacji, aby mieć dostęp do swoich danych u dostawcy, a dostaniesz token dostępu, którego można użyć aby uzyskać dostęp do chronionych zasobów.
  2. Alternatywnie, masz aplikację, z użytkownikami, którzy mają loginy itp. I chcesz zapewnić (tj. Jesteś dostawcą) dostęp do niektórych ograniczonych informacji użytkowników do aplikacji innych firm (konsumentów) bez narażania ich referencje użytkowników do tych usług.

Aby uzyskać więcej informacji na temat protokołu OAuth, sprawdź numer OAuth.Net website. Aktualnie dostępne są 3 implementacje OAuth dla .Net.

powodu prac sposób OAuth, nie mogę sobie wyobrazić, jak można mieć "OAuth" dostawcę członkostwa - to naprawdę przeznaczone do zabezpieczania API, a często celem jest delegowanie uprawnień na bardziej szczegółowym poziomie, tj. Zapewnienie aplikacji konsumenta dostępu tylko do danych z książki adresowej użytkownika, bez umożliwienia im dostępu do archiwów poczty e-mail, ich kalendarza itd. - co nie pasuje do ell z modelem bezpieczeństwa opartym na członkostwie/rolach.

Zgaduję, czego tak naprawdę poszukujesz, to OpenId, czyli sposób w jaki uwierzytelniasz siebie samego w Stackoverflow. Sugerowałbym czytanie Stackoverflow OpenId case study here i prawdopodobnie najlepsza implementacja OpenId dla .Net jest obecnie częścią projektu DotNetOpenAuth (to było formalnie nazywane DotNetOpenId, strona kodowa Google dla projektu is here).

+0

Wystarczy spada w komentarzu, że DotNetOpenAuth można teraz znaleźć tutaj: http://www.dotnetopenauth.net/ –

+4

@bittercoder myślę, że odstraszają ludzi z tej odpowiedzi . Chociaż prawdą jest, że ludzie używają oAuth do autoryzacji API stron trzecich, nie jest nierozsądne rozważenie wprowadzenia niestandardowego członkostwa SSO w asp.net z np. Domena Google Apps, w której token autoryzacji jest używany jako token uwierzytelniania asp.net (cookie), aby można go było użyć do późniejszego oddzwonienia do interfejsu API Google. Mam dokładnie ten scenariusz, w którym moja aplikacja MVC wywołuje apis w moim google apps.domain. oAuth to zarówno uwierzytelnianie, jak i autoryzacja. –

+0

Ta odpowiedź została utworzona przed OAuth 2 istniejącą w jej obecnej formie (3 lata temu!) - powiedziałbym wtedy, że było poprawne. Obecnie myślę, że świat odwrócił się, a większość ludzi nie zna OpenID, traktuje OAuth jako mechanizm uwierzytelniania i niekoniecznie jest świadoma wielu podstawowych idei stojących za OAuth (delegowane uwierzytelnianie/sposób zabezpieczenia dostępu API). – Bittercoder

6

Myślę, że być może szukasz DotNetOpenAuth. Nie używałem go, więc nie mogę powiedzieć na pewno, czy zawiera on dostawcę członkostwa, ale spodziewałbym się, że tak się stanie. Jeśli nie, to jest open source, więc powinno ci pomóc w tym, co i tak próbujesz zrobić.

2

należy spojrzeć https://github.com/rustd/ASPNETTemplates który ma domyślne szablony projektów dla ASP.NET, które wykazują loguje się przy użyciu protokołu OAuth a następnie wystające uniwersalne dostawców (webforms szablon, ale można zrobić to samo dla MVC) zrobić ról itp

1

Biblioteki przeszły długą drogę od opublikowania tego pytania ...Zacząłem przy użyciu tej biblioteki dla OAuth - to już wdrożył Facebook, Twitter, Google+ PayPal i integracja:

OAuth2 Social Logins - Facebook, Google, Twitter, PayPal - ASP.NET MVC C# open source library

Ponadto, jeśli kompatybilność wstecz nie jest problem dla ciebie, Microsoft rozpoczął wspieranie popularnych dostawców OAuth ... zobacz ten artykuł:

Microsoft OAuth2 OWIN/Katana integration with Facebook and Google+

Powiązane problemy