Czym dokładnie jest OAuth (otwarta autoryzacja)?
OAuth pozwala powiadomić dostawcę zasobów (np. Facebooka), że właściciel zasobu (np. Ty) udziela zgody stronie trzeciej (np. Aplikacji Facebook) na dostęp do ich informacji (np. Listy znajomych).
Jeśli przeczytasz to wyraźnie, zrozumiałbym twoje zamieszanie. Przejdźmy więc do konkretnego przykładu: dołączenie do kolejnej sieci społecznościowej!
Załóżmy, że masz już konto Gmail. Decydujesz się dołączyć do LinkedIn. Ręczne dodawanie wszystkich wielu przyjaciół jest męczące i podatne na błędy. Możesz mieć dość do połowy lub wstawić literówki w adresie e-mail w celu zaproszenia. Możesz więc pokusić się o to, by nie założyć konta.
W tej sytuacji LinkedIn ma dobry pomysł, aby napisać program, który automatycznie doda twoją listę znajomych, ponieważ komputery są znacznie bardziej wydajne i skuteczne w męczących i podatnych na błędy zadaniach. Ponieważ dołączenie do sieci jest teraz tak łatwe, nie ma mowy , byś odrzucił taką ofertę, prawda?
Bez interfejsu API do wymiany tej listy kontaktów musiałbyś podać LinkedIn nazwę użytkownika i hasło do konta GMail, tym samym dając im zbyt dużą moc .
W tym miejscu pojawia się OAuth. Jeśli Twój Gmail obsługuje protokół OAuth, LinkedIn może poprosić Cię o autoryzację dostępu do listy kontaktów GMail.
OAuth pozwala na:
- Różne poziomy dostępu: tylko do odczytu VS do odczytu i zapisu. Umożliwia to udzielenie dostępu do listy użytkowników lub dwukierunkowy dostęp w celu automatycznej synchronizacji nowych znajomych LinkedIn z kontaktami Gmaila.
- Szczegółowość dostępu: możesz zdecydować o przyznaniu dostępu tylko do twoich danych kontaktowych (nazwa użytkownika, adres e-mail, data urodzenia itp.) Lub do całej listy znajomych, kalendarza i innych danych.
- Pozwala zarządzać dostępem z aplikacji dostawcy zasobów. Jeśli aplikacja innej firmy nie zapewnia mechanizmu anulowania dostępu, utknąłbyś z dostępem do twoich informacji. W przypadku OAuth istnieje możliwość cofnięcia dostępu w dowolnym momencie.
Czy stanie się de facto (standardem) w najbliższej przyszłości?
Cóż, chociaż OAuth jest znaczącym krokiem naprzód, nie rozwiązuje problemów, jeśli ludzie nie używają go poprawnie. Na przykład, jeśli dostawca zasobów zapewnia tylko jeden poziom dostępu do odczytu i zapisu do wszystkich zasobów jednocześnie i nie zapewnia mechanizmu zarządzania dostępem, to nie ma sensu. Innymi słowy, OAuth jest strukturą zapewniającą funkcje autoryzacji, a nie tylko uwierzytelnianie.
W praktyce bardzo dobrze pasuje do modelu sieci społecznościowej. Jest to szczególnie popularne w sieciach społecznościowych, które chcą zezwalać na „wtyczki” innych firm. Jest to dziedzina, w której dostęp do zasobów jest z natury konieczny, a także z natury zawodny (tzn. Masz niewielką kontrolę jakości nad tymi aplikacjami lub nie masz jej wcale).
Nie widziałem tak wielu innych zastosowań na wolności. To znaczy, nie wiem z internetowym firmy doradztwa finansowego, która będzie dostęp wyciągi bankowe automatycznie, choć mogłoby technicznie być używane w ten sposób.