OAuth 2 to otwarty standard autoryzacji, który umożliwia użytkownikom autoryzację dostępu stron trzecich do swoich serwerów bez konieczności podawania nazwy użytkownika i hasła. Dlatego zespół Bitdefender postanowił przygotować artykuł, z którego dowiesz się, co to jest OAuth 2 i czy warto z niego korzystać.
Wszystko, co musisz wiedzieć o OAuth i jego działaniu
OAuth 2 flow oznacza otwartą autoryzację. Jest to proces, dzięki któremu aplikacja lub witryna internetowa może uzyskać dostęp do prywatnych danych z innej witryny internetowej, a także zapewnia aplikacjom możliwość „zabezpieczenia wyznaczonego dostępu”. Możesz na przykład poinformować Google, że witryna test.pl może uzyskać dostęp do Twojego konta Google lub kontaktu bez konieczności podawania test.pl hasła Google.
OAuth 2.0 nigdy nie udostępnia danych dotyczących haseł, zamiast tego wykorzystuje tokeny autoryzacyjne w celu potwierdzenia tożsamości między konsumentami a dostawcami usług. OAuth token to protokół uwierzytelniania, który umożliwia zatwierdzanie w Twoim imieniu jednej aplikacji wchodzącej w interakcję z inną bez konieczności podawania hasła.
Aby zrozumieć ten proces, weźmy przykład Facebooka. Kiedy aplikacja na Facebook prosi Cię o udostępnienie Twojego profilu i zdjęć, Facebook pełni rolę usługodawcy: posiada Twoje dane i wizerunek, a ta aplikacja jest konsumentem. Jeśli chcesz coś zrobić ze swoim zdjęciem za pomocą tej aplikacji, musisz zezwolić tej aplikacji na dostęp do Twoich zdjęć, którymi zarządza OAuth token w tle.
Co to jest OAuth2.0?
Poniżej wyjaśniono działanie powyższego diagramu sekwencji implementacji Oauth 2.0:
Załóżmy, że klient żąda autoryzacji dostępu do chronionych zasobów należących do właściciela zasobu, przekierowując go do serwera autoryzacji. Żądanie dostępu do zasobu jest uwierzytelniane i autoryzowane przez właściciela zasobu z aplikacji internetowej, a autoryzacja jest zwracana do klienta przez autoryzowany punkt końcowy.
Istnieją cztery typy protokołu dotacji zdefiniowane przez OAuth 2.0: kod autoryzacyjny, poświadczenia klienta, kod urządzenia i token odświeżania.
Klient żąda tokenu dostępu z serwera autoryzacji, przedstawiając udzieloną autoryzację zwróconą z autoryzowanego punktu końcowego i uwierzytelniając własną tożsamość w punkcie końcowym tokenu. Punkt końcowy tokenu to adres URL, taki jak https://twoja_domena/oauth2/token.
Token dostępu zostanie wydany klientowi w celu prawidłowego uwierzytelnienia i udzielenia autoryzacji przez serwer autoryzacji lub dostawcę uwierzytelniania. Przedstawiając token dostępu do uwierzytelnienia, klient może zażądać chronionych zasobów z serwera zasobów. Następnie żądane zasoby są zwracane do aplikacji (klienta) z ważnym tokenem dostępu z serwera zasobów.
Dlaczego powinieneś używać protokołu OAuth2?
OAuth 2.0 zapewnia aplikacjom możliwość zabezpieczenia wyznaczonego dostępu. W przypadku tradycyjnej metody przed OAuth witryny prosiły o kombinację nazwy użytkownika i hasła do logowania, a także używały tych samych danych uwierzytelniających, aby uzyskać dostęp do danych.
Dzięki OAuth 2 flow zamiast wysyłać nazwę użytkownika i hasło do serwera przy każdym żądaniu, konsument wysyła identyfikator klucza API. W tym scenariuszu konsument komunikuje się ze swoim dostawcą tożsamości w celu uzyskania dostępu. Dostawca tożsamości generuje zaszyfrowany, podpisany token, który zapewnia dostęp aplikacji poprzez uwierzytelnienie konsumenta. Proces ten opiera się na zaufaniu pomiędzy dostawcą tożsamości a aplikacją. Stworzy lepszy interfejs dla aplikacji internetowych.
Praca z tokenem i zakresem OAuth
Serwer autoryzacyjny uwierzytelnia klienta, sprawdza przyznanie autoryzacji oraz wystawia token zwany „tokenem dostępu”. Ten token dostępu powinien być widoczny tylko dla aplikacji, autoryzacji i serwera zasobów. Aplikacja pilnuje, aby zapis OAuth tokena dostępowego nie mógł być odczytany przez inne aplikacje na tym samym urządzeniu.
Protokół autoryzacji OAuth 2.0 definiuje następujące metody otrzymania tokenu dostępu. Przepływy te nazywane są typami dotacji. Możesz więc zdecydować o typie dotacji w zależności od przypadku użycia lub opierać się głównie na typie Twojej aplikacji.
Poniżej przedstawiono pięć typów uprawnień opisanych w celu wykonywania zadań autoryzacyjnych.
- Przyznanie kodu autoryzacyjnego.
- Ukryte przyznanie.
- Przyznanie poświadczeń właścicielowi zasobu
- Przyznanie poświadczeń klientowi.
- Odświeżenie przyznanego tokenu.
Zakres ten określa poziom dostępu, jakiego aplikacja żąda od klienta. Aplikacja może zażądać jednego lub większej liczby zakresów. Informacje te są następnie prezentowane konsumentowi na ekranie zgody. Token dostępowy wydany do aplikacji będzie ograniczony do przyznanych zakresów. Następnie aplikacja informuje Twoich konsumentów, kto żąda dostępu do ich danych i do jakiego rodzaju danych chce uzyskać dostęp.
OAuth 2.0 – kluczowe wnioski
W tym artykule omówiono protokół OAuth 2.0 jako strukturę autoryzacji dla delegowanego dostępu do internetowych interfejsów API. Ta funkcja zapewnia konsumentowi dostęp do zasobów bez ujawniania hasła w aplikacji. Zanim jednak zaimplementujesz jakąkolwiek funkcjonalność na swojej stronie internetowej, przeanalizuj i rozważ zalety i wady pod każdym możliwym kątem.
Pamiętaj także o tym, aby zadbać o siłę swoich haseł. Narzędziem, które znacząco Ci to ułatwi, jest Bitdefender Password Manager, czyli menadżer haseł, dzięki któremu będziesz mógł generować i bezpiecznie przechowywać bardzo silne hasła.