Na tej stronie znajdziesz kilka ogólnych sprawdzonych metod dotyczących integracji z OAuth 2.0. Weź pod uwagę te sprawdzone metody, a także wskazówki dotyczące Twojego typu aplikacji i platformy programistycznej. Zapoznaj się też z wskazówkami dotyczącymi przygotowania aplikacji do wersji produkcyjnej i zasadami Google dotyczącymi OAuth 2.0.
Bezpieczne zarządzanie danymi logowania klienta
Dane logowania klienta OAuth służą do identyfikacji Twojej aplikacji i należy je traktować ostrożnie. Przechowuj te dane logowania tylko w bezpiecznym miejscu, na przykład w usłudze zarządzania sekretami, takiej jak Google Cloud Secret Manager. Nie koduj danych logowania na stałe, nie zapisuj ich w repozytorium kodu ani nie publikuj publicznie.
Bezpieczne obchodzenie się z tokenami użytkowników
Tokeny użytkownika 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 w postaci zwykłego tekstu. Użyj bezpiecznego systemu przechowywania danych odpowiedniego dla Twojej platformy, takiego jak Keystore na Androidzie, usługi Keychain w iOS i macOS lub sejf z danymi logowania w Windows.
Cofnij tokeny, gdy nie są już potrzebne, i trwało je usuń ze swoich systemów.
Dodatkowo zastosuj te sprawdzone metody na swojej platformie:
- W przypadku aplikacji po stronie serwera, które przechowują tokeny wielu użytkowników, należy szyfrować je w spoczynku i zadbać o to, aby miejsce przechowywania danych nie było publicznie dostępne w internecie.
- W przypadku natywnych aplikacji komputerowych zdecydowanie zalecamy użycie protokołu Proof Key for Code Exchange (PKCE), aby uzyskać kody 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 poprosiła o odświeżenie tokena dostępu offline, musisz też obsłużyć jego unieważnienie lub wygaśnięcie. Tokeny mogą być unieważniane z różnych powodów, na przykład z powodu wygaśnięcia lub cofnięcia przez użytkownika lub automatyczny proces dostępu do aplikacji. W takim przypadku zastanów się, jak powinna zareagować aplikacja, m.in. prosić użytkownika o informacje przy następnym logowaniu lub wyczyścić jego dane. Aby otrzymywać powiadomienia o odwołaniu tokenów, zintegruj się z usługą Ochrona wszystkich kont.
Korzystanie z autoryzacji przyrostowej
Używaj autoryzacji przyrostowej, aby żądać odpowiednich zakresów protokołu OAuth, gdy aplikacja potrzebuje odpowiedniej funkcji.
Nie wysyłaj prośby o dostęp do danych, gdy użytkownik po raz pierwszy się uwierzytelnia, chyba że jest to niezbędne do działania głównej funkcjonalności aplikacji. Zamiast tego poproś o dostęp tylko do tych zakresów, które są potrzebne do wykonania zadania, zgodnie z zasadą wybierania jak najmniejszych i najbardziej ograniczonych zakresów.
Zawsze prośby o zakresy wyświetlaj w odpowiednim kontekście, aby użytkownicy rozumieli, dlaczego aplikacja prosi o dostęp i jak będą wykorzystywane dane.
Aplikacja może na przykład wyglądać tak:
- użytkownik uwierzytelnia się w aplikacji.
- Nie trzeba prosić o żadne dodatkowe zakresy. Aplikacja zapewnia podstawowe funkcje, które umożliwiają użytkownikowi korzystanie z funkcji niewymagających dostępu do żadnych dodatkowych danych.
- Użytkownik wybiera funkcję, która wymaga dostępu do dodatkowych danych.
- Aplikacja wysyła żądanie autoryzacji dla tego konkretnego zakresu OAuth wymaganego do korzystania z tej funkcji. Jeśli ta funkcja wymaga wielu zakresów, zastosuj sprawdzone metody podane poniżej.
- Jeśli użytkownik odmówi zgody, aplikacja wyłączy tę funkcję i udostępni mu dodatkowy kontekst, w którym może ponownie poprosić o dostęp.
Zarządzanie zgodą na wykorzystanie danych w wielu zakresach
Gdy żądasz wielu zakresów jednocześnie, użytkownicy mogą nie przyznać wszystkich zakresów protokołu OAuth. Aplikacja powinna reagować na odmowy zakresów, wyłączając odpowiednie funkcje.
Jeśli podstawowe funkcje aplikacji wymagają wielu zakresów, przed wyświetleniem prośby o zgodę wyjaśnij to użytkownikowi.
Możesz ponownie poprosić użytkownika o zgodę tylko wtedy, gdy wyraźnie wskaże on, że zamierza użyć konkretnej funkcji, która wymaga uprawnień. Przed wysłaniem żądania zakresów protokołu OAuth Twoja aplikacja powinna zapewniać użytkownikowi odpowiedni kontekst i uzasadnienie.
Warto zminimalizować liczbę zakresów, których aplikacja żąda jednocześnie. Zamiast tego użyj stopniowego uwierzytelniania, aby żądać zakresów uprawnień w kontekście funkcji.
Korzystanie z bezpiecznych przeglądarek
W internecie żądania autoryzacji OAuth 2.0 można wysyłać tylko z pełnofunkcyjnych przeglądarek internetowych. W przypadku innych platform wybierz odpowiedni typ klienta OAuth i zintegruj protokół OAuth odpowiednio do swojej platformy. Nie przekierowuj żądania przez wbudowane przeglądarki środowisk, w tym widoków stron na platformach mobilnych, takich jak WebView na Androidzie lub WKWebView na iOS. Zamiast tego używaj na swojej platformie natywnych bibliotek OAuth lub logowania przez Google.
Ręczne tworzenie i konfigurowanie klientów OAuth
Aby zapobiec nadużyciom, nie można tworzyć ani modyfikować klientów OAuth za pomocą kodu. Musisz użyć konsoli Google Developers, aby wyraźnie zaakceptować warunki korzystania z usługi, skonfigurować klienta OAuth i przygotować się do weryfikacji OAuth.
W przypadku korzystania z automatycznych przepływów pracy rozważ użycie kont usługi.