OAuth
![](http://178.128.105.246/host-http-upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Oauth_logo.svg/240px-Oauth_logo.svg.png)
OAuth – otwarty standard autoryzujący, pozwalający użytkownikom udostępniać aplikacjom i stronom trzecim informacje przechowywane u innych dostawców usług[1]. Zazwyczaj wymagana jest nazwa użytkownika oraz token. Standard ten wykorzystywany jest m.in. przez Amazon[2], Google[3], Facebook[4], Microsoft[5] oraz Twitter[6].
OAuth zapewnia klientom tzw. „bezpieczny delegowany dostęp” do zasobów serwera w imieniu właściciela zasobów. Definiuje proces autoryzacji dostępu klientów zewnętrznych do zasobów serwera bez konieczności współdzielenia poświadczeń. Zaprojektowany z myślą o pracy z protokołem HTTP, OAuth zasadniczo umożliwia wydawanie tokenów dostępu klientom zewnętrznym poprzez serwer autoryzacji. Następnie klient zewnętrzny wykorzystuje otrzymany token aby uzyskać dostęp do chronionych zasobów przechowywanych na serwerze.
OAuth jest serwisem komplementarnym i odrębnym od OpenID. OAuth różni się także od OATH, który jest architekturą odniesienia dla procesu identyfikacji, a nie standardem. Jednakże OAuth jest bezpośrednio powiązany z OpenID Connect (OIDC), ponieważ OIDC jest warstwą identyfikacji zbudowaną w oparciu o OAuth 2.0. Różni się także od XAMCML, który jest standardem polityki autoryzacyjnej. OAuth może być użyty w połączeniu z XACML w taki sposób, że OAuth jest wykorzystywany do udzielenia zgody własności i pełnomocnictwa dostępu, a XACML do definiowania polityki autoryzacyjnej (np. menadżerowie mogą przeglądać dokumenty w swoim regionie).
Historia
[edytuj | edytuj kod]OAuth został opracowany na początku listopada 2006 przez Baline'a Cooka, który w tym czasie pracował nad implementacją mechanizmu „Twitter OpenID”. W międzyczasie, Ma.gnolia szukała rozwiązania problemu autoryzacji widżetów dla serwisów członków autoryzujących się przez OpenID. Cook, Chris Messina i Larry Halff z Ma.gnolia spotkali się z Davidem Recordonem aby omówić wykorzystanie OpenID z Twitterem i API Ma.gnolia, aby delegować identyfikację. Doszli do wniosku, że nie istnieją pisane standardy dla delegowania dostępu aplikacji.
Grupa dyskusyjna na temat OAuth została założona w kwietniu 2007. Była to mała grupa zajmująca się stworzeniem szkicu, który mógłby być propozycją otwartego protokołu. DeWitt Clinton z firmy Google dowiedziawszy się o projekcie OAuth wyraził swoje zainteresowanie w kwestii wsparcia wysiłków prowadzących do jego ukończenia. W lipcu 2007 zespół stworzył wstępną specyfikację. Eran Hammer dołączył do zespołu koordynując wiele składowych protokołu OAuth w celu utworzenia formalnej specyfikacji. 4 grudnia 2007 utworzony został ostateczny szkic OAuth Core 1.0.
Na 73. spotkaniu Internet Engineering Task Force (IETF) w Minneapolis w listopadzie 2008 poruszony został temat włączenia protokołu do IETF w celu dalszej standaryzacji. Wydarzenie było bardzo popularne i pojawiło się szerokie wsparcie dla utworzenia oficjalnej grupy OAuth na IETF.
Protokół OAuth 1.0 został opublikowany jako RFC (Request for Comments) 5849 w kwietniu 2010.
Od 31 sierpnia 2010 wszystkie zewnętrzne aplikacje Twittera zobowiązane były do identyfikowania się przez OAuth.
W październiku 2012 opublikowany został OAuth 2.0 jako RFC 6749, oraz Bearer Token Usage jako RFC 6750.
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ Whitson Gordon , Understanding OAuth: What Happens When You Log Into a Site with Google, Twitter, or Facebook, „Lifehacker” [dostęp 2018-03-26] (ang.).
- ↑ Home - Login with Amazon Developer Center [online], login.amazon.com [dostęp 2018-03-26] .
- ↑ Google Identity Platform [online], Google Developers [dostęp 2018-03-26] (ang.).
- ↑ Access Tokens, „Facebook for Developers” [dostęp 2018-03-26] (ang.).
- ↑ Zrozumienie przepływu kodu autoryzacji protokołu OAuth 2.0 w usłudze Azure AD [online], docs.microsoft.com [dostęp 2018-03-26] .
- ↑ Oauth with the Twitter API [online] [dostęp 2018-03-26] (ang.).