Rozłączanie kont

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Odłączenie może zostać zainicjowane na Twojej platformie lub w Google, a spójny stan połączenia w obu przypadkach zapewni najlepszą obsługę użytkowników. Łączenie punktów końcowych unieważniania tokenów lub ochrona między kontami jest opcjonalna w przypadku łączenia kont Google.

Konta mogą zostać rozłączone przez:

  • Prośba użytkownika:
  • brak możliwości odnowienia wygasłego tokena odświeżania.
  • Inne zdarzenia zainicjowane przez Ciebie lub przez Google. na przykład zawieszenie konta z powodu nadużyć lub wykrywania zagrożeń.

Użytkownik poprosił o odłączenie od Google

Odłączenie konta zainicjowane za pomocą konta Google lub aplikacji użytkownika powoduje usunięcie wcześniej wystawionych tokenów dostępu i odświeżenia, usunięcie zgody użytkownika oraz opcjonalnie wywołanie punktu końcowego unieważnienia tokena, jeśli zdecydujesz się go zaimplementować.

Użytkownik poprosił o odłączenie od Twojej platformy

Udostępnij użytkownikom mechanizm odłączenia kont, np. adres URL ich kont. Jeśli nie udostępniasz użytkownikom możliwości odłączenia konta, uwzględnij link do konta Google, aby użytkownicy mogli zarządzać swoim połączonym kontem.

Możesz wdrożyć mechanizm ryzyka i współdzielenia incydentów (RISC) oraz powiadomić Google o zmianach w stanie łączenia kont użytkowników. Takie działanie zapewnia większą wygodę korzystania z platformy, ponieważ zarówno Twoja platforma, jak i Google wyświetlają stan połączenia w sposób stały i spójny, bez konieczności aktualizowania stanu połączenia za pomocą prośby o odświeżenie lub dostęp.

Wygaśnięcie tokena

Aby zadbać o wygodę użytkowników i uniknąć przerw w działaniu usługi, Google stara się odnawiać tokeny odświeżania pod koniec ich cyklu życia. W niektórych przypadkach, gdy prawidłowy token odświeżania jest niedostępny, może być wymagana zgoda użytkownika na ponowne połączenie kont.

Zaprojektowanie platformy tak, aby obsługiwała wiele niezbędnych tokenów dostępu i odświeżania, może zminimalizować warunki wyścigów występujące na giełdach serwer-serwer między klastrami, uniknąć zakłóceń w działaniu użytkowników oraz zminimalizować scenariusze dotyczące czasu i obsługi błędów. Ostatecznie zarówno poprzednie, jak i nowe wygasłe tokeny mogą być używane przez krótki czas podczas odnawiania tokena klienta-serwera i przed synchronizacją klastra. Na przykład żądanie Google skierowane do usługi, które korzysta z poprzedniego nieważnego tokena dostępu, pojawia się tuż po wysłaniu nowego tokena dostępu, ale przed wykonaniem potwierdzenia i synchronizacji klastra odbywa się Google. Zalecamy skorzystanie z alternatywnych rozwiązań zabezpieczających do odświeżania rotacji tokenów.

Inne zdarzenia

Konta można rozłączyć z różnych powodów, takich jak brak aktywności, zawieszenie, złośliwe zachowanie itp. W takich przypadkach Twoja platforma i Google mogą najlepiej zarządzać kontami użytkowników i łączyć je ponownie, powiadamiając się o zmianach stanu konta i połączenia.

Zaimplementuj punkt końcowy unieważnienia tokena, aby umożliwić Google wywoływanie zdarzeń i powiadomienie Google o zdarzeniach unieważnienia tokenów za pomocą RISC, aby zapewnić niezmienną stan połączenia konta użytkownika z platformą i Google.

Punkt końcowy unieważnienia tokena

Jeśli obsługujesz punkt końcowy odwołania tokenu OAuth 2.0, Twoja platforma może otrzymywać powiadomienia od Google. Pozwala to informować użytkowników o zmianach stanu łącza, unieważniać token i czyścić poświadczenia bezpieczeństwa i uprawnienia autoryzacyjne.

Żądanie ma następującą formę:

POST /revoke HTTP/1.1
Host: oauth2.example.com
Content-Type: application/x-www-form-urlencoded

client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&token=TOKEN&token_type_hint=refresh_token

Punkt końcowy odwołania tokenu musi obsługiwać następujące parametry:

Parametry punktu końcowego odwołania
client_id Ciąg identyfikujący źródło żądania jako Google. Ten ciąg musi zostać zarejestrowany w Twoim systemie jako unikalny identyfikator Google.
client_secret Tajny ciąg znaków zarejestrowany w Google dla Twojej usługi.
token Token do unieważnienia.
token_type_hint (Opcjonalnie) typu token unieważniany, powstaje access_token lub refresh_token . Jeśli nie jest określony, domyślnie access_token .

Zwróć odpowiedź, gdy token zostanie usunięty lub nieprawidłowy. Zobacz poniższy przykład:

HTTP/1.1 200 Success
Content-Type: application/json;charset=UTF-8

Jeśli z jakiegokolwiek powodu tokenu nie można usunąć, zwróć kod odpowiedzi 503, jak pokazano w poniższym przykładzie:

HTTP/1.1 503 Service Unavailable
Content-Type: application/json;charset=UTF-8
Retry-After: HTTP-date / delay-seconds

Google ponawia żądanie później lub zgodnie z żądaniem Retry-After .

Ochrona wszystkich kont (RISC)

Jeśli obsługujesz ochronę obejmującą wiele kont, Twoja platforma może powiadamiać Google o unieważnieniu tokenów dostępu lub odświeżania. Dzięki temu Google może informować użytkowników o zmianach stanu łącza, unieważnić token, wyczyścić dane uwierzytelniające i przyznać autoryzację.

Ochrona między kontami opiera się na standardzie RISC opracowanym w OpenID Foundation.

Token zdarzenia zabezpieczającego służy do powiadamiania Google o unieważnieniu tokena.

Po odkodowaniu zdarzenie unieważnienia tokenu wygląda jak w poniższym przykładzie:

{
  "iss":"http://risc.example.com",
  "iat":1521068887,
  "aud":"google_account_linking",
  "jti":"101942095",
  "toe": "1508184602",
  "events": {
    "https://schemas.openid.net/secevent/oauth/event-type/token-revoked":{
      "subject_type": "oauth_token",
      "token_type": "refresh_token",
      "token_identifier_alg": "hash_SHA512_double",
      "token": "double SHA-512 hash value of token"
    }
  }
}

Tokeny zdarzeń bezpieczeństwa, których używasz do powiadamiania Google o zdarzeniach związanych z unieważnieniem tokena, muszą spełniać wymagania podane w poniższej tabeli:

Zdarzenia dotyczące unieważnienia tokenu
iss Roszczenie wydawcy: jest to adres URL, który hostujesz i jest on udostępniany Google podczas rejestracji.
aud Oświadczenie odbiorców: identyfikuje Google jako odbiorcę tokena JWT. Musi być ustawiony na google_account_linking .
jti Oświadczenie o identyfikatorze JWT: jest to unikalny identyfikator generowany dla każdego tokenu zdarzenia bezpieczeństwa.
iat Wystawiony przy roszczeniu: jest to wartość NumericDate która reprezentuje czas utworzenia tego tokenu zdarzenia bezpieczeństwa.
toe Czas NumericDate zdarzenia: jest to opcjonalna wartość NumericDate która reprezentuje czas, w którym token został unieważniony.
exp Czas ważności Twierdzenie: nie zawierają tego pola, gdy zdarzenie powodujące niniejszego zawiadomienia już się odbyła.
events
Oświadczenie dotyczące zdarzeń bezpieczeństwa: jest to obiekt JSON i musi zawierać tylko jedno zdarzenie unieważnienia tokenu.
subject_type Musi być ustawiony na oauth_token .
token_type Jest to rodzaj symbolicznego uchyleniu albo access_token lub refresh_token .
token_identifier_alg To jest algorytm używany do kodowania tokena i musi to być hash_SHA512_double .
token To jest identyfikator unieważnionego tokena.

Aby uzyskać więcej informacji na temat typów i formatów pól, zobacz JSON Web Token (JWT) .