Sprawdzone metody

Na tej stronie znajdziesz ogólne sprawdzone metody integracji z protokołem OAuth 2.0. Rozważ te sprawdzone metody jako uzupełnienie wszelkich wskazówek dotyczących konkretnego typu aplikacji i platformy deweloperskiej. Zapoznaj się też ze wskazówkami dotyczącymi przygotowania aplikacji do wersji produkcyjnej i zasadami Google dotyczącymi protokołu OAuth 2.0.

Bezpieczne korzystanie z danych logowania klienta

Dane logowania klienta OAuth identyfikują tożsamość aplikacji, dlatego należy z nich korzystać ostrożnie. Przechowuj te dane logowania tylko w bezpiecznym magazynie, np. przy użyciu menedżera obiektów tajnych, takiego jak Google Cloud Secret Manager. Nie koduj na stałe danych logowania, zatwierdzaj je w repozytorium kodu ani nie publikuj ich publicznie.

Bezpieczne obsługę tokenów użytkownika

Tokeny użytkowników zawierają zarówno tokeny odświeżania, jak i tokeny dostępu używane przez aplikację. Przechowuj tokeny w bezpiecznym spoczynku i nigdy nie przesyłaj ich w postaci zwykłego tekstu. Korzystaj z bezpiecznego systemu przechowywania odpowiedniego dla Twojej platformy, na przykład magazynu kluczy na Androidzie, usług pęku kluczy w systemie iOS i macOS czy Szafki danych logowania w systemie Windows.

Unieważnij tokeny, gdy tylko nie będą już potrzebne, i trwale usuń je z systemów.

Weź też pod uwagę te sprawdzone metody w przypadku Twojej platformy:

  • W przypadku aplikacji po stronie serwera, które przechowują tokeny wielu użytkowników, szyfruj je w spoczynku i upewnij się, że magazyn danych nie jest publicznie dostępny w internecie.
  • W przypadku natywnych aplikacji komputerowych używanie protokołu Proof Key for Code Exchange (PKCE) zdecydowanie zalecamy uzyskanie kodów autoryzacji, które można wymienić na tokeny dostępu.

Obsługa unieważnienia i wygaśnięcia tokena odświeżania

Jeśli Twoja aplikacja prosi o token odświeżania w celu dostępu offline, musisz też zająć się jego unieważnieniem lub jego wygaśnięciem. Tokeny mogą być unieważnione z różnych powodów, np. mogły wygasnąć lub dostęp do aplikacji mógł zostać unieważniony przez użytkownika albo automatyczny proces. W takim przypadku zastanów się, jak powinna zareagować Twoja aplikacja, m.in. gdy użytkownik zobaczy prośbę o zalogowanie się przy kolejnym logowaniu, lub oczyści dane. Aby otrzymywać powiadomienia o unieważnieniu tokena, zintegruj z usługą Ochrona wszystkich kont.

Użyj autoryzacji przyrostowej

Korzystaj z autoryzacji przyrostowej, aby zażądać odpowiednich zakresów OAuth, gdy dana funkcja jest wymagana przez aplikację.

Nie należy prosić o dostęp do danych przy pierwszym uwierzytelnieniu użytkownika, chyba że jest to niezbędne do działania głównej funkcji aplikacji. Zamiast tego wysyłaj żądania tylko określonych zakresów potrzebnych do wykonania zadania zgodnie z zasadą wybierania najmniejszych, możliwie ograniczonych zakresów.

Zawsze żądaj zakresów w kontekście, aby użytkownicy wiedzieli, dlaczego aplikacja prosi o dostęp i jak będą wykorzystywane dane.

Aplikacja może być np. zgodna z tym modelem:

  1. użytkownik uwierzytelnia się w aplikacji;
    1. Nie są żądane dodatkowe zakresy. Aplikacja oferuje podstawowe funkcje, dzięki którym użytkownik może odkrywać i korzystać z funkcji, które nie wymagają dodatkowych danych ani dostępu.
  2. Użytkownik wybiera funkcję, która wymaga dostępu do dodatkowych danych.
    1. Twoja aplikacja wysyła żądanie autoryzacji dla tego konkretnego zakresu OAuth wymaganego przez tę funkcję. Jeśli ta funkcja wymaga wielu zakresów, postępuj zgodnie z poniższymi sprawdzonymi metodami.
    2. Jeśli użytkownik odmówi zgody, aplikacja wyłączy tę funkcję i przekaże użytkownikowi dodatkowy kontekst, w którym może poprosić o ponowne przyznanie dostępu.

Obsługa zgody dla wielu zakresów

Jeśli żądasz wielu zakresów jednocześnie, użytkownicy mogą nie przyznać wszystkich żądanych zakresów OAuth. Aplikacja powinna obsługiwać odmowa zakresów, wyłączając odpowiednie funkcje.

Jeśli podstawowe funkcje aplikacji wymagają wielu zakresów, wyjaśnij to użytkownikowi, zanim wyświetlisz prośbę o zgodę.

Możesz wysłać użytkownikowi prośbę ponownie dopiero wtedy, gdy wyraźnie wskaże on, że chce użyć określonej funkcji, która wymaga zakresu. Przed wysłaniem żądania zakresów OAuth Twoja aplikacja powinna przedstawić użytkownikowi odpowiedni kontekst i uzasadnienie.

Należy zminimalizować liczbę zakresów żądań wysyłanych do aplikacji naraz. Zamiast tego używaj autoryzacji przyrostowej do żądań zakresów w kontekście funkcji i funkcji.

Korzystaj z bezpiecznych przeglądarek

W internecie żądania autoryzacji OAuth 2.0 mogą być wysyłane wyłącznie z przeglądarek z pełną funkcjonalnością. Na innych platformach wybierz prawidłowy typ klienta OAuth i zintegruj OAuth stosownie do swojej platformy. Nie przekierowuj żądań przez osadzone środowiska przeglądania, w tym komponenty WebView na platformach mobilnych, takie jak WebView na Androidzie lub WKWebView w systemie iOS. Zamiast tego używaj natywnych bibliotek protokołu OAuth lub funkcji logowania przez Google na swojej platformie.

Ręczne tworzenie i konfigurowanie klientów OAuth

Aby zapobiec nadużyciom, klientów OAuth nie można automatycznie tworzyć ani modyfikować. Musisz użyć konsoli Google Developers Console, aby wyraźnie zaakceptować warunki korzystania z usługi, skonfigurować klienta OAuth i przygotować się do weryfikacji OAuth.

W przypadku automatycznych przepływów pracy rozważ użycie kont usługi.