Przegląd

Połączenie kont umożliwia właścicielom kont Google szybkie, łatwe i bezpieczne łączenie się z Twoimi usługami. Możesz wdrożyć łączenie z kontem Google, aby udostępniać dane użytkownika ze swojej platformy aplikacjom i usługom Google.

Bezpieczny protokół OAuth 2.0 umożliwia bezpieczne połączenie konta Google użytkownika z kontem na platformie, co zapewnia aplikacjom i urządzeniom Google dostęp do Twoich usług.

Użytkownicy mogą łączyć i rozłączać swoje konta oraz opcjonalnie utworzyć nowe konto na Twojej platformie za pomocą funkcji łączenia kont Google.

Przypadki użycia

Oto kilka powodów, dla których warto wdrożyć połączenie z kontem Google:

  • Udostępniaj dane użytkownika ze swojej platformy aplikacjom i usługom Google.

  • Odtwarzaj treści wideo i filmy w Google TV.

  • Zarządzaj połączonymi urządzeniami Google Smart Home i zarządzaj nimi za pomocą aplikacji Google Home i Asystenta Google: „OK Google, włącz światło”.

  • Stwórz użytkownikowi dostosowane funkcje i możliwości Asystenta Google za pomocą akcji rozmów: „OK Google, zamów jak zwykle w Starbucks”.

  • Umożliwienie użytkownikom zdobywania nagród w zamian za oglądanie kwalifikujących się transmisji na żywo w YouTube po połączeniu ich kont Google z kontem partnera prowadzącego nagrody.

  • wstępnie wypełniać nowe konta podczas rejestracji danymi udostępnianymi za zgodą użytkownika, korzystając z profilu konta Google;

Obsługiwane funkcje

Połączenie z kontem Google obsługuje te funkcje:

  • Szybko i łatwo udostępniaj dane za pomocą procedury niejawnego łączenia przez OAuth.

  • Zwiększ bezpieczeństwo dzięki procesowi kodu autoryzacji połączenia przez OAuth.

  • Loguj obecnych użytkowników lub zarejestruj na swojej platformie nowych użytkowników zweryfikowanych przez Google, uzyskuj ich zgodę i bezpiecznie udostępniaj dane za pomocą funkcji uproszczonego łączenia.

  • Uprość sobie pracę dzięki funkcji odwracania aplikacji. W zaufanej aplikacji Google wystarczy jedno dotknięcie, aby bezpiecznie otworzyć zweryfikowaną aplikację na Androida lub iOS. Jednym kliknięciem możesz wyrazić zgodę i połączyć konta.

  • Aby zwiększyć prywatność użytkowników, zdefiniuj zakresy niestandardowe, które będą udostępniać tylko niezbędne dane, i zwiększ zaufanie użytkowników przez jasne określenie sposobu wykorzystania ich danych.

  • Dostęp do danych i usług hostowanych na Twojej platformie można anulować, rozłączając konta. Implementacja opcjonalnego punktu końcowego unieważniania tokena umożliwia Ci synchronizowanie ze zdarzeniami zainicjowanymi przez Google, a zabezpieczenie obejmujące wiele kont (RISC) umożliwia powiadamianie Google o każdym zdarzeniu odłączenia, które ma miejsce na Twojej platformie.

Procesy łączenia kont

Istnieją 3 procesy łączenia kont Google, z których każdy opiera się na protokole OAuth i wymaga zarządzania punktami końcowymi uwierzytelniania zgodnymi z protokołem OAuth 2.0 i wymianą tokenów oraz ich kontrolowania.

Podczas łączenia możesz udostępniać Google tokeny dostępu do poszczególnych kont Google, gdy uzyskasz zgodę właścicieli kont na połączenie ich kont i udostępnianie danych.

Łączenie przez OAuth („internetowy protokół OAuth”)

Jest to podstawowy proces OAuth, który odsyła użytkowników do Twojej witryny, aby mogli ją połączyć. Użytkownik zostaje przekierowany do Twojej witryny, aby zalogować się na swoje konto. Po zalogowaniu się użytkownik wyraża zgodę na udostępnianie Google swoich danych w Twojej usłudze. W tym momencie konto Google użytkownika i Twoja usługa będą połączone.

Łączenie przez OAuth obsługuje kod autoryzacji i niejawne przepływy OAuth. Twoja usługa musi hostować punkt końcowy autoryzacji zgodny z OAuth 2.0 na potrzeby przepływu niejawnego, a podczas korzystania z przepływu kodu autoryzacji musi udostępniać punkt końcowy autoryzacji i tokena wymiany tokenów.

Rysunek 1. Łączenie kont na telefonie użytkownika za pomocą internetowej protokołu OAuth

Łączenie z użyciem odwracania aplikacji w oparciu o protokół OAuth („Przerzucenie aplikacji”)

Proces OAuth, który odsyła użytkowników do aplikacji, aby uzyskać połączenie.

Funkcja łączenie aplikacji z użyciem protokołu OAuth pomaga użytkownikom poruszać się między zweryfikowanymi aplikacjami mobilnymi na Androida lub iOS a platformą Google w celu sprawdzenia proponowanych zmian w dostępie do danych i wyrażenia zgody na połączenie ich konta na Twojej platformie z kontem Google. Aby można było włączyć odwracanie aplikacji, usługa musi obsługiwać łączenie przez OAuth lub łączenie z logowaniem przez Google za pomocą protokołu OAuth z użyciem kodu autoryzacji.

Odwracanie aplikacji jest obsługiwane na Androida i iOS.

Jak to działa:

Aplikacja Google sprawdza, czy Twoja aplikacja jest zainstalowana na urządzeniu użytkownika:

  • Jeśli aplikacja zostanie znaleziona, użytkownik zostanie jej odwrócony. Aplikacja uzyska zgodę użytkownika na połączenie konta z Google, a następnie „wraca” do przestrzeni Google.
  • Jeśli aplikacja nie zostanie znaleziona lub podczas jej łączenia wystąpi błąd, użytkownik zostanie przekierowany do Uproszczonego procesu OAuth lub Web OAuth.

Rysunek 2. Łączenie kont na telefonie użytkownika za pomocą funkcji App Flip

Uproszczone łączenie oparte na protokole OAuth („Sprostsze”)

Uproszczone łączenie logowania przez Google oparte na protokole OAuth dodaje Logowanie przez Google do połączenia OAuth, co umożliwia użytkownikom ukończenie procesu łączenia bez opuszczania platformy Google, co zmniejsza liczbę problemów i porzuceń. Uproszczone łączenie przez OAuth zapewnia największą wygodę użytkownikom, ponieważ łączy Logowanie przez Google z łączeniem OAuth, aby zapewnić użytkownikom najlepsze wrażenia podczas logowania się oraz tworzenia i łączenia kont. Twoja usługa musi obsługiwać punkty końcowe autoryzacji i tokeny wymiany tokenów zgodne z protokołem OAuth 2.0. Dodatkowo punkt końcowy wymiany tokenów musi obsługiwać asercje tokenów sieciowych JSON (JWT) oraz implementować intencji check, create, i get.

Jak to działa:

Google zgłasza konto użytkownika i przekazuje Ci te informacje:

  • Jeśli użytkownik ma konto w Twojej bazie danych, musi on połączyć swoje konto Google z kontem w Twojej usłudze.
  • Jeśli w Twojej bazie danych użytkownik nie ma żadnego konta, użytkownik może utworzyć nowe konto innej firmy z informacjami podanymi przez Google (adres e-mail, imię i nazwisko oraz zdjęcie profilowe) lub zalogować się i połączyć z innym adresem e-mail (co wymaga od niego zalogowania się w usłudze przez Web OAuth).

Rysunek 3. Łączenie kont na telefonie użytkownika dzięki uproszczonemu łączeniu

Którego procesu użyjesz?

Zalecamy wdrożenie wszystkich procesów, aby zapewnić użytkownikom maksymalną wygodę łączenia. Uproszczone oraz odwracanie aplikacji ułatwia łączenie, ponieważ użytkownicy mogą wykonać proces łączenia w kilku prostych krokach. Stosowanie protokołu internetowego przez OAuth wymaga najmniejszego nakładu pracy i jest dobrym punktem wyjścia, a potem możesz dodać kolejne etapy łączenia.

Praca z tokenami

Łączenie z kontem Google odbywa się zgodnie z branżowym standardem OAuth 2.0.

Tokeny dostępu do poszczególnych kont Google wydajesz Google po uzyskaniu zgody właścicieli kont na połączenie ich kont i udostępnianie danych.

Typy tokenów

OAuth 2.0 używa ciągów zwanych tokenami do komunikacji między agentem użytkownika, aplikacją kliencką i serwerem OAuth 2.0.

Podczas łączenia kont można używać trzech typów tokenów OAuth 2.0:

  • Kod autoryzacji . Krótkotrwały token, który można wymienić na token dostępu i odświeżania. Ze względów bezpieczeństwa Google wywołuje punkt końcowy autoryzacji, aby uzyskać kod jednorazowego użytku lub bardzo krótkotrwały.

  • Token dostępu . Token, który zapewnia okazicielowi dostęp do zasobu. Aby ograniczyć ekspozycję, która może wynikać z utraty tego tokena, ma on ograniczony czas życia, zwykle wygasa po około godzinie.

  • Odśwież token . Długotrwały token, który można wymienić na nowy token dostępu po wygaśnięciu tokenu dostępu. Gdy Twoja usługa integruje się z Google, ten token jest przechowywany i używany wyłącznie przez Google. Google wywołuje punkt końcowy wymiany tokenów w celu wymiany tokenów odświeżania na tokeny dostępu, które z kolei są używane do uzyskiwania dostępu do danych użytkownika.

Obsługa tokenów

Warunki wyścigu w środowiskach klastrowych i wymiany klient-serwer mogą skutkować złożonymi scenariuszami czasowymi i obsługi błędów podczas pracy z tokenami. Na przykład:

  • Otrzymujesz prośbę o nowy token dostępu i wydajesz nowy token dostępu. Jednocześnie otrzymujesz żądanie dostępu do zasobu usługi przy użyciu poprzedniego, niewygasłego tokenu dostępu.
  • Twoja odpowiedź tokena odświeżania jeszcze nie dotarła (lub nigdy nie została odebrana) przez Google. W międzyczasie w żądaniu od Google używany jest poprzednio ważny token odświeżania.

Żądania i odpowiedzi mogą przychodzić w dowolnej kolejności lub wcale, ze względu na usługi asynchroniczne działające w klastrze, zachowanie sieci lub w inny sposób.

Nie można zagwarantować natychmiastowego iw pełni spójnego stanu współdzielenia zarówno w ramach systemów obsługi tokenów, jak i między nimi. Wiele ważnych, niewygasłych tokenów może współistnieć w krótkim czasie w systemach lub między nimi. Aby zminimalizować negatywny wpływ na użytkowników, zalecamy wykonanie następujących czynności:

  • Akceptuj tokeny dostępu, które utraciły ważność, nawet po wystawieniu nowszego tokenu.
  • Skorzystaj z alternatyw, aby Odśwież rotację tokenów .
  • Obsługa wielu jednocześnie ważnych tokenów dostępu i odświeżania. Ze względów bezpieczeństwa należy ograniczyć liczbę tokenów i okres istnienia tokenu.
Obsługa konserwacji i przestojów

Podczas prac konserwacyjnych lub nieplanowanych przestojów Google może nie być w stanie zadzwonić do punktów końcowych autoryzacji lub wymiany tokenów w celu uzyskania dostępu i odświeżenia tokenów.

Twoje punkty końcowe powinny odpowiedzieć kodem błędu 503 i pustą treścią. W takim przypadku Google ponawia nieudane żądania wymiany tokenów przez ograniczony czas. Pod warunkiem, że Google będzie w stanie później uzyskać tokeny odświeżania i dostępu, nieudane żądania nie będą widoczne dla użytkowników.

Niepowodzenie próśb o token dostępu skutkuje widocznym błędem, jeśli zostało zainicjowane przez użytkownika. Użytkownicy będą musieli ponowić próbę niepowodzenia łączenia, jeśli zostanie użyty niejawny przepływ OAuth 2.0.

Zalecenia

Istnieje wiele rozwiązań minimalizujących wpływ konserwacji. Kilka opcji do rozważenia:

  • Utrzymaj istniejącą usługę i kieruj ograniczoną liczbę żądań do nowo zaktualizowanej usługi. Przeprowadź migrację wszystkich żądań dopiero po potwierdzeniu oczekiwanej funkcjonalności.

  • Zmniejsz liczbę żądań tokenów w okresie konserwacji:

    • Ogranicz okresy konserwacji do mniej niż okres istnienia tokenu dostępu.

    • Tymczasowo zwiększ żywotność tokena dostępu:

      1. Zwiększ okres istnienia tokenu, aby był dłuższy niż okres konserwacji.
      2. Poczekaj dwa razy dłużej niż okres istnienia tokenu dostępu, umożliwiając użytkownikom wymianę tokenów krótkotrwałych na tokeny o dłuższym czasie trwania.
      3. Wejdź do konserwacji.
      4. Odpowiadaj na żądania tokenów za pomocą kodu błędu 503 i pustej treści.
      5. Zakończ konserwację.
      6. Zmniejsz okres istnienia tokenu z powrotem do normalnego.

Rejestracja w Google

Aby umożliwić łączenie kont, potrzebujemy szczegółowych informacji o konfiguracji protokołu OAuth 2.0 oraz udostępnieniu danych logowania. Więcej informacji znajdziesz w artykule dotyczącym rejestracji.