Spisu treści:
Wiele luksusowych samochodów ma klucz parkingowego. Jest to specjalny klucz, który dajesz pracownikowi parkingowemu, w przeciwieństwie do zwykłego klucza, pozwoli on prowadzić samochód tylko na niewielką odległość, blokując dostęp do bagażnika i telefonu komórkowego na pokładzie. Niezależnie od ograniczeń nałożonych przez klucz parkingowego, pomysł jest bardzo sprytny. Dajesz komuś ograniczony dostęp do samochodu za pomocą specjalnego klucza, a jednocześnie używasz innego klucza, aby odblokować wszystko inne. - Oficjalny przewodnik po OAuth 1.0
W ten sposób wytyczne specyfikacji oparte na społeczności wyjaśniły OAuth w 2007 roku. I chociaż OAuth 2.0 jest zupełnie nowym protokołem, nadal obowiązuje ten sam opis - OAuth pozostaje sposobem na przyznanie użytkownikom dostępu (i ograniczonego dostępu) do ich zasoby bez udostępniania haseł.
Jeśli regularnie korzystasz z Internetu, prawdopodobnie trafiłeś na witrynę korzystającą z OAuth. W końcu największe światowe strony internetowe, takie jak Facebook, Google, MySpace, Twitter, Photobcuket, Yahoo, Evernote i Vimeo, używają tego standardu uwierzytelniania. Czytaj dalej, aby dowiedzieć się więcej o tym standardzie i dlaczego nowa generacja, OAuth 2.0, jest nadal używana na stosunkowo eksperymentalnych podstawach.
Co to jest OAuth 2.0?
Po pierwsze, musisz wiedzieć, co robi OAuth jako protokół: Umożliwia autoryzację interfejsu programowania aplikacji między dwiema aplikacjami sieciowymi lub komputerowymi. W rezultacie strony internetowe mogą współdzielić chronione zasoby z innymi stronami internetowymi i usługami.
Na przykład, jeśli grasz w Scramble ze znajomymi na iPadzie, możesz wprowadzić dane uwierzytelniające na Facebooku, pozwalając grze przejrzeć listę znajomych, aby zobaczyć, który z nich gra - i zaprosić innych. Możesz też połączyć się ze znajomymi w Google+ na podstawie tego, kto obserwuje Cię na Twitterze. Tego typu aplikacje są przydatne dla użytkowników, ale wiążą się z udzieleniem jednej witrynie lub programowi dostępu do informacji o Tobie w innej witrynie.
OAuth 2.0 działa podobnie jak pierwsze wcielenie OAuth, ale jest to zupełnie nowy standard. Oznacza to, że nie jest wstecznie kompatybilny z OAuth 1.0. Wersja 2.0 rozwiązała wiele problemów z oryginalnym OAuth i wprowadziła ulepszenia.
Zasadniczo zachowując architekturę pierwszej wersji, 2.0 poprawił:
- Uwierzytelnianie i podpisy. OAuth 2.0 ułatwił implementację protokołu po stronie klienta.
- Doświadczenie użytkownika i alternatywne sposoby wydawania tokenów
- Wydajność, szczególnie w przypadku większych witryn i usług
Korzyści z używania OAuth 2.0
Jednym z najlepszych powodów używania OAuth jest to, że znacznie ułatwia udostępnianie. Jesteśmy już przyzwyczajeni do przesyłania zdjęć na Instagram i automatycznego publikowania ich na Twitterze i Facebooku. W rzeczywistości jest to taka łatwość użytkowania i crossover, która sprawia, że media społecznościowe są tak atrakcyjne.
Ale to nie wszystko. Dla użytkowników końcowych OAuth oznacza, że nie musisz tworzyć innego profilu. Na przykład, jeśli chcesz zostawić komentarz do artykułu, możesz użyć do tego swoich danych logowania na Facebooku lub Twitterze, zamiast konieczności zakładania konta w danej witrynie. Jest to idealne rozwiązanie dla witryn, w których zwykle nie jesteś aktywny lub którym możesz nie ufać. Może także przynieść korzyści stronom, zapewniając użytkownikom tożsamość na Facebooku, dzięki czemu spam w komentarzach jest mniej prawdopodobny.
OAuth oznacza również mniej haseł do zapamiętania. Najlepszą praktyką jest posiadanie różnych haseł do różnych usług internetowych. Zamiast zapamiętywać kolejne hasło, wystarczy użyć hasła do Facebooka, aby uzyskać dostęp do usługi., nawiasem mówiąc, nie zobaczy twojego hasła.
Możesz również ograniczyć dostęp do zasobów za pośrednictwem OAuth. Na przykład, grając w grę na Facebooku, możesz określić, czy chcesz, aby gra była publikowana na ścianie w Twoim imieniu, czy nie.
Dla programisty OAuth 2.0 zapewnia już opracowany kod do uwierzytelniania, wyświetlania interakcji społecznościowych i wyświetlania profilu użytkownika. Oznacza to mniej błędów dla programistów i mniejsze ryzyko, ponieważ interfejs API został już debugowany, przetestowany i sprawdzony. Wreszcie, zyskujesz również na tym, że masz mniej danych do przechowywania na własnych serwerach.
Jak powstał OAuth 2.0
Oczywistym jest, że OAuth jest odpowiedzią na wezwanie do bezpiecznego przetwarzania danych i łatwości użytkowania dla różnych usług internetowych. Z kolei OAuth 2.0 wynikał z potrzeby uczynienia OAuth mniej skomplikowanym. Ale cały pomysł na oba pochodzi z OpenID.
OpenID to usługa umożliwiająca użytkownikom logowanie się do różnych usług przy użyciu danych logowania z innej witryny. Ale OpenID był bardzo ograniczony, więc grupa ludzi pracujących nad różnymi protokołami autoryzacji dla własnych stron spotkała się. Pierwsze wdrożenia OAuth przeprowadzono w 2007 r., A pierwsza wersja pojawiła się dwa lata później.
OAuth 2.0 pojawił się na scenie w 2010 roku. Jego celem było skupienie się na prostocie programista-klient i łatwość skalowania, jednocześnie poprawiając komfort użytkowania.
Zbliżające się wyzwania?
Chociaż Google, Klout i inne wielkie nazwiska wdrażają protokół OAuth 2.0, przed tym protokołem może być jeszcze kamienista droga. W społeczności OAuth 2.0 pojawiają się krytyki, w tym obawy dotyczące bezpieczeństwa protokołu (wielu uważa, że jest mniej bezpieczny niż OAuth 1.0).
Według Hammera, jeśli jest używany przez kompetentnego programistę, który jest dobrze zaznajomiony z bezpieczeństwem sieci, OAuth 2.0 działa. Niestety tylko niewielka mniejszość programistów pasuje do tego rachunku.
Ponadto kody OAuth 2.0 nie są wielokrotnego użytku. Na przykład protokoły OAuth 2.0 używane przez Facebooka nie byłyby łatwo dostępne dla innych witryn. Co więcej, nowy protokół jest znacznie bardziej złożony niż oryginał.
Ale dla wielu osób prawdziwym wyzwaniem jest to, że OAuth 2.0 nie wydaje się oferować żadnej realnej przewagi ani poprawy w porównaniu z wersją 1.0. Hammer pisze, że jeśli pomyślnie wdrożysz wersję 1.0, nie ma powodu, aby aktualizować do wersji 2.0.
OAuth 2.0 jest jednak nadal bardzo żywy. Jeśli rozwiązuje krytykę i podnoszone problemy, może nadal znaleźć miejsce jako bardzo skuteczny protokół. Jednak w chwili pisania tego tekstu wersja 1.0 jest nadal uważana za oficjalną, stabilną i przetestowaną wersję OAuth. Niemniej jednak dla programistów, którzy chcą pracować z wielkimi nazwiskami w świecie online, bezpieczne wdrażanie tego protokołu może stać się kluczową umiejętnością w niezbyt odległej przyszłości.
