Na tej stronie opisujemy ogólne sprawdzone metody integracji z protokołem OAuth 2.0. Weź pod uwagę te sprawdzone metody w uzupełnieniu wszelkich wytycznych związanych z Twoim typem aplikacji i platformy deweloperskiej. Zapoznaj się też ze wskazówkami dotyczącymi przygotowania aplikacji do wdrożenia wersji produkcyjnej i zasadami Google dotyczącymi protokołu OAuth 2.0.
Bezpiecznie korzystaj z danych logowania klienta
Dane logowania klienta OAuth identyfikują tożsamość aplikacji, dlatego należy ich używać z rozwagą. Przechowuj te dane logowania tylko w bezpiecznym miejscu, na przykład 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 publicznie.
Obsługuj tokeny użytkowników w bezpieczny sposób
Tokeny użytkowników obejmują zarówno tokeny odświeżania, jak i tokeny dostępu używane przez aplikację. Przechowuj tokeny w bezpieczny sposób w spoczynku i nigdy nie przesyłaj ich jako zwykły tekst. Korzystaj z bezpiecznego systemu pamięci masowej odpowiedniego dla Twojej platformy, np. magazynu kluczy na Androidzie, usługi pęku kluczy w systemie iOS i macOS lub Credential Locker w systemie Windows.
Unieważnij tokeny, gdy nie będą już potrzebne, i trwale usuń je z systemów.
Weź też pod uwagę te sprawdzone metody w przypadku swojej 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życie protokołu Proof Key for Code Exchange (PKCE) jest zdecydowanie zalecane, aby uzyskać kody autoryzacji, które można wymienić na tokeny dostępu.
Obsługa unieważniania i wygaśnięcia tokena odświeżania
Jeśli Twoja aplikacja zażądała tokena odświeżania w celu dostępu offline, musisz też zająć się ich unieważnieniem lub wygaśnięciem. Tokeny mogą być unieważnione z różnych powodów. Mógł on np. wygasnąć lub odebrać dostęp do Twoich aplikacji przez użytkownika albo w wyniku działania automatycznego. W takim przypadku dokładnie zastanów się, jak powinna zareagować Twoja aplikacja, na przykład gdy wyświetli się użytkownikowi prośba o zalogowanie się przy następnym logowaniu lub przeczyści jego dane. Aby otrzymywać powiadomienia o unieważnieniu tokena, przeprowadź integrację z usługą Ochrona wszystkich kont.
Użyj autoryzacji przyrostowej
Użyj autoryzacji przyrostowej, aby zażądać odpowiednich zakresów OAuth, gdy dana funkcja jest potrzebna przez aplikację.
Nie wysyłaj prośby o dostęp do danych przy pierwszym uwierzytelnianiu użytkownika, chyba że jest to niezbędne do działania głównej funkcji aplikacji. Zamiast tego wysyłaj żądania tylko konkretnych zakresów potrzebnych do wykonania zadania zgodnie z zasadą wybierania najmniejszych, najbardziej 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.
Na przykład aplikacja może być zgodna z tym modelem:
- użytkownik uwierzytelnia się w aplikacji;
- Nie zażądano dodatkowych zakresów. Aplikacja ma podstawowe funkcje, dzięki którym można przeglądać i korzystać z funkcji, które nie wymagają dodatkowych danych ani dostępu.
- Użytkownik wybiera funkcję, która wymaga dostępu do dodatkowych danych.
- Twoja aplikacja wysyła żądanie autoryzacji dla tego konkretnego zakresu OAuth wymaganego do działania tej funkcji. Jeśli ta funkcja wymaga wielu zakresów, postępuj zgodnie ze sprawdzonymi metodami opisanymi poniżej.
- Jeśli użytkownik odrzuci prośbę o dostęp, aplikacja wyłączy tę funkcję i zapewni mu dodatkowy kontekst, aby mógł ponownie poprosić o dostęp.
Obsługa zgody dla wielu zakresów
Gdy żą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ę na wykorzystanie danych.
Możesz wysłać użytkownikowi prośbę ponownie tylko wtedy, gdy wyraźnie wskaże on, że chce korzystać z konkretnej funkcji, która wymaga danego zakresu. Zanim poprosisz o zakresy protokołu OAuth, Twoja aplikacja powinna dostarczyć użytkownikowi odpowiedni kontekst i uzasadnienie.
Zmniejsz liczbę zakresów, o które prosi aplikacja jednocześnie. Zamiast tego korzystaj z autoryzacji przyrostowej do żądania zakresów w kontekście funkcji i funkcji.
Korzystaj z bezpiecznych przeglądarek
W internecie żądania autoryzacji OAuth 2.0 mogą być wysyłane tylko z przeglądarek z pełną funkcjonalnością. Na innych platformach wybierz właściwy typ klienta OAuth i zintegruj OAuth stosownie do swojej platformy. Nie przekierowuj żądania przez osadzone środowiska przeglądania, w tym komponenty WebView na platformach mobilnych, takie jak WebView na Androidzie czy WKWebView w iOS. Zamiast tego używaj natywnych bibliotek OAuth lub 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 zautomatyzowanych przepływów pracy rozważ użycie kont usługi.