Loading AI tools
Z Wikipedii, wolnej encyklopedii
OAuth 2.0 – standardowy protokół autoryzacji dostępu, skoncentrowany na ułatwieniu użytkownikowi przepływu autoryzacji dla aplikacji internetowych, aplikacji, telefonów komórkowych oraz innych urządzeń, na których można się zalogować na określone strony internetowe[1]. Protokół OAuth nie wymaga od internauty podawania hasła w momencie logowania, ale zamiast tego używa tokenów autoryzacyjnych (ciąg znaków określających określony zakres, czas życia oraz inne atrybuty dostępu)[2] , które mają na celu potwierdzenie tożsamości pomiędzy dostawcami usług a konsumentami. Ogólnie rzecz biorąc jest to protokół, który pozwala na zatwierdzenie współpracy między jedną stroną, aplikacją a drugą w Twoim imieniu, lecz bez podawania haseł. Z takiego rozwiązania korzystają między innymi Facebook, Twitter, Microsoft, Google czy Amazon, chcąc tym samym ułatwić udostępnianie informacji.
Oficjalna strona projektu OAuth 2.0 wyróżniła dokumenty omawiającego specyfikę tego protokołu. Dokument RFC 6749 ↓ jest podstawowym produktem IETF (Internet Engineering Task Force) OAuth Working Group. Docelowo OAuth 2.0 udziela dostępu innemu podmiotowi na przykładzie poniższego praktycznego opisu sytuacji, w której udzielane zostaje prawo do odczytu danych z profilu Facebook bądź Google. Typowy scenariusz opiera się na następujących krokach:
W całym procederze chodzi o wygenerowanie tokenu, będącego głównym nośnikiem informacji między podmiotami, które chcą wykonać określoną operację. OAuth może to wykonywać dzięki kompatybilności z protokołem HTTP (ang. Hypertext Transfer Protocol)[2] . OAuth ma za zadanie zapewnić „bezpieczny delegowany dostęp”[4] do zasobów serwera w imieniu użytkownika w celu potwierdzenia tożsamości.
Protokół OAuth zaczął funkcjonować w listopadzie 2006 r., kiedy kanadyjski programista Blaine Cook opracowywał mechanizm OpenID na Twiterze. Chcąc znaleźć sposób na użycie OpenID z interfejsem API Twittera do właściwego uwierzytelnienia skontaktował się z Chrissem Messiną. Podczas spotkania branżowego CitizenSpace OpenID Cook, Messina, David Recordon oraz Larry Halff doszli do wspólnego porozumienia dotychczasowych poczynań w tematyce Open ID. Grupa uznała, że w mechanizmie OpenID Twitter nie było otwartego standardu dla interfejsu API[5]. Kilka miesięcy po spotkaniu, w kwietniu 2007 r. utworzono grupę dyskusyjną OAuth, której celem było zaprojektowanie protokołu otwartego. Dzięki właściwym zastosowaniom Cooka, Messuny, Recordona, Halffa oraz wsparciu DeWitta Clintona z Google w lipcu 2007 r. projekt posiadał zarys oraz specyfikację, natomiast w październiku 2007 r. opublikowana ujednoliconą wersję OAuth Core 1.0[5].
W listopadzie 2008 roku, podczas 73. spotkania Internet Engineering Task Force (IETF) w Minneapolis poruszony został temat włączenia protokołu do IETF w celu dalszej standaryzacji OAuth. Następstwem tego wydarzenia było stworzenie oficjalnej grupy OAuth na IETF – w kwietniu 2010 protokół OAuth 1.0 został opublikowany jako RFC 5849 ↓.
Aktualizacja protokołu OAuth 1.0 nastąpiła w październiku 2012 r. Nowa struktura OAuth 2.0 została opublikowana jako RFC 6749 ↓, a użycie tokenów na okaziciela jako RFC 6750 ↓.
Wartym podkreślenia jest fakt, że OAuth 1.0 oraz OAuth 2.0 nie są ze sobą kompatybilne, Facebook, Google oraz Microsoft obsługują tylko OAuth 2.0.[6][7][8], jako mechanizmu autoryzacyjnego zalecanego dla wszystkich interfejsów API wewnątrz oraz dla stron trzecich.
Opisując mechanizm funkcjonowania OAuth, można wnioskować, że jest on rozwiązaniem praktycznym, a korzyści z jego wykorzystywania są następujące:
OAuth 2.0 jest unowocześniona, zaktualizowaną wersją OAuth 1.0. Dla osób, które dotychczas korzystały ze starszego protokołu, przejście na nowsze rozwiązania może się okazać kłopotem, gdyż specyfikacja obu znacznie się zmieniła[3]. Co więcej, oba protokoły nie są ze sobą kompatybilne, dlatego też producenci zalecają ze skorzystania z nowszego standardu podczas tworzenia nowych aplikacji[4]. Widoczne różnice obu protokołów są następujące:
W teorii OAuth 2.0 okazuje się rozwiązaniem mniej skomplikowanym, udoskonalonym, jednak liczne niedomówienia w oficjalnej dokumentacji OAuth 2.0 sprawiają, że aspekt bezpieczeństwa w tym protokole jest dosyć naciągany. Z owego powodu główny autor specyfikacji projektu – Eran Hammer-Lahav zrezygnował z pełnionej funkcji, wycofał się z grupy roboczej IETF oraz usunął swoje personalia z koncepcji OAuth 2.0. Redaktor podkreślił, że różnica pomiędzy wersjami 2.0 a 1.0 jest bardzo widoczna, ale w negatywnym aspekcie. Według niego OAuth 2.0 stał się „bardziej złożony, mniej interoperacyjny, mniej przydatny, bardziej niekompletny, a co najważniejsze, mniej bezpieczny”[13]. Następnie, z niewyjaśnionych przyczyn z szeregów grupy wycofał się także David Recordon , a rolę głównego redaktora – tuż przed oficjalnym opublikowaniem OAuth 2.0 w październiku 2012 r. objął Dick Hardt .
SAML (Security Assertion Markup Language) jest alternatywnym standardem uwierzytelnienia, sprawdzającym się w rejestracji jednokrotnej (SSO) w wielu przedsiębiorstwach oraz firmach. Dzięki temu rozwiązaniu przedsiębiorstwa mogą monitorować, kto posiada dostęp do zasobów wewnętrznych. Protokół ten dużej mierze jest nastawiony na zachowanie wysokich standardów bezpieczeństwa w przedsiębiorstwach[4].
SAML uwierzytelnia i autoryzuje dostęp pomiędzy dostawcą usługi oraz dostawcą tożsamości. Ich relacja prezentuje się następująco:
Podstawową różnicą między protokołami SAML oraz OAuth jest to, że pierwszy podczas wymiany informacji uwierzytelnienia korzysta z dokumentów XML (ang. Extensible Markup Language), czyli cyfrowego sposobu podpisu, a OAuth używa JSON (ang. JavaScript Object Notation), będącego formatem tekstowym, bazującym na podzbiorze języka JavaScript[4]. Dalej, kluczową rozbieżnością jest to, że OAuth sukcesywnie korzysta w wywołań interfejsu API, dzięki czemu ten protokół jest rekomendowany przez użytkowników aplikacji mobilnych, nowoczesnych aplikacji internetowych, konsol do gier oraz IoT, a SAML ma możliwość upuszczania tymczasowych plików cookie w przeglądarce[4].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.