Na tej stronie opisujemy implementację Google jako dostawcy OpenID Connect i podajemy specyfikację techniczną punktów końcowych OIDC Google. Specyfikacja OpenID Connect (OIDC) Core 1.0 definiuje protokół uwierzytelniania użytkowników i uzyskiwania informacji o ich tożsamości.
Ten dokument nie zawiera szczegółowych instrukcji implementacji OIDC. Szczegóły implementacji znajdziesz w przewodniku OpenID Connect.
Dokument opisujący
Dokument wykrywania zawiera metadane dotyczące konfiguracji OpenID Connect od Google, zgodnie ze specyfikacją OpenID Connect Discovery 1.0.
URL: https://accounts.google.com/.well-known/openid-configuration
Obsługiwana metoda żądania: GET
Treść odpowiedzi
Pola odpowiedzi są zwracane w obiekcie JSON w treści odpowiedzi HTTP na żądanie GET wysłane przez osobę wysyłającą żądanie do https://accounts.google.com/.well-known/openid-configuration.
| Pole | Typ | Opis |
|---|---|---|
issuer |
string |
Identyfikator wydawcy. Adres URL z rozróżnianiem wielkości liter, w którym użyto schematu https. Współczesna wartość to https://accounts.google.com, ale w przypadku starszych implementacji zwracana jest też wartość accounts.google.com. |
authorization_endpoint |
string |
URL punktu końcowego autoryzacji. |
device_authorization_endpoint |
string |
URL punktu końcowego autoryzacji urządzenia. |
token_endpoint |
string |
URL punktu końcowego tokena. |
userinfo_endpoint |
string |
Adres URL punktu końcowego UserInfo. |
revocation_endpoint |
string |
Adres URL punktu końcowego cofnięcia. |
jwks_uri |
string |
Adres URL dokumentu zestawu kluczy internetowych JSON (JWKS). |
response_types_supported |
array |
Lista obsługiwanych wartości response_type. |
response_modes_supported |
array |
Lista obsługiwanych wartości response_mode. |
authorization_response_iss_parameter_supported |
boolean |
Wartość logiczna wskazująca obsługę RFC 9207. |
subject_types_supported |
array |
Lista obsługiwanych typów identyfikatorów podmiotów. |
id_token_signing_alg_values_supported |
array |
Lista obsługiwanych algorytmów do podpisywania tokena identyfikatora. |
scopes_supported |
array |
Lista obsługiwanych wartości zakresu. |
claims_supported |
array |
Lista obsługiwanych roszczeń. |
token_endpoint_auth_methods_supported |
array |
Lista obsługiwanych metod uwierzytelniania w przypadku punktu końcowego tokena. |
code_challenge_methods_supported |
array |
Lista obsługiwanych metod testu zabezpieczającego w przypadku PKCE. |
grant_types_supported |
array |
Lista obsługiwanych typów uwierzytelniania OAuth 2.0. |
Token identyfikatora (roszczenia)
Wartość id_token zwracana w odpowiedziach to podpisany token internetowy JSON (JWT), który musi zostać zweryfikowany za pomocą materiału klucza uzyskanego z jwks_uri w dokumencie Discovery. W poniższej tabeli opisano zawartość zdekodowanego ładunku tokena identyfikatora.
| Roszczenie | Typ | Opis |
|---|---|---|
iss |
string |
Wymagane. Identyfikator wystawcy odpowiedzi. Zwykle https://accounts.google.com, ale w przypadku starszych implementacji zwracana jest też wartość accounts.google.com. |
sub |
string |
Wymagane. Identyfikator użytkownika, niepowtarzalny wśród wszystkich kont Google i nieużywany ponownie. Konto Google może mieć w różnych momentach wiele powiązanych adresów e-mail, ale wartość sub nigdy się nie zmienia. Użyj właściwości sub w swojej aplikacji jako unikalnego klucza, a zarazem identyfikatora użytkownika. Maksymalna długość to 255 znaków ASCII z uwzględnieniem wielkości liter. |
azp |
string |
Identyfikator klienta autoryzowanej aplikacji prezentującej token uzyskany z konsoli Google Cloud. Ta deklaracja jest potrzebna tylko wtedy, gdy strona żądająca tokena tożsamości różni się od jego odbiorcy. |
aud |
string |
Wymagane. Odbiorcy, dla których jest przeznaczony token tożsamości. Jest to identyfikator klienta aplikacji uzyskany w konsoli Google Cloud. |
iat |
integer |
Wymagane. Czas wystawienia tokena tożsamości. Podany jako czas uniksowy (całkowita liczba sekund). |
exp |
integer |
Wymagane. Czas wygaśnięcia, po którym token tożsamości nie może być akceptowany. Podany jako czas uniksowy (całkowita liczba sekund). |
nonce |
string |
Wartość parametru nonce dostarczona przez aplikację w żądaniu uwierzytelnienia. Zadbaj o to, aby była wyświetlana tylko raz, co zapewni ochronę przed atakami typu replay. |
auth_time |
integer |
Czas uwierzytelnienia użytkownika, czyli liczba JSON reprezentująca liczbę sekund, które upłynęły od epoki uniksowej (1 stycznia 1970 r., 00:00:00 UTC). Podawany, gdy w parametrze żądania uwierzytelnienia claims znajduje się roszczenie auth_time. |
at_hash |
string |
Hash tokena dostępu. Potwierdza, że token dostępu jest powiązany z tokenem tożsamości. Jeśli w przepływie po stronie serwera token identyfikatora jest wydawany z wartością access_token, ta deklaracja jest zawsze uwzględniana. |
email |
string |
Adres e-mail użytkownika. Podawany tylko wtedy, gdy w żądaniu uwzględniono zakres email. Wartość tego roszczenia może nie być unikalna dla tego konta i może się zmieniać z czasem, dlatego nie należy jej używać jako głównego identyfikatora do łączenia z rekordem użytkownika. Nie możesz też polegać na domenie w deklaracji email, aby identyfikować użytkowników organizacji Google Workspace lub Cloud. Zamiast tego użyj deklaracji hd. Ostrzeżenie: nie używaj adresu e-mail jako identyfikatora, ponieważ konto Google może mieć wiele adresów e-mail w różnych momentach. Zawsze używaj pola sub jako identyfikatora użytkownika. |
email_verified |
boolean |
Wartość „prawda”, jeśli adres e-mail użytkownika został zweryfikowany. W przeciwnym razie „fałsz”. |
name |
string |
Pełne imię i nazwisko użytkownika w możliwej do wyświetlenia postaci. Może być podany, gdy zakres żądania zawierał ciąg profile lub token identyfikatora jest zwracany po odświeżeniu tokena. |
picture |
string |
Adres URL zdjęcia profilowego użytkownika. Może być podany, gdy zakres żądania zawierał ciąg profile lub token identyfikatora jest zwracany po odświeżeniu tokena. |
given_name |
string |
Imię lub imiona użytkownika. Może być podany, gdy występuje roszczenie name. |
family_name |
string |
Nazwisko użytkownika. Może być podany, gdy występuje roszczenie name. |
hd |
string |
Domena powiązana z organizacją Google Workspace lub Cloud użytkownika. Podawana tylko wtedy, gdy użytkownik należy do organizacji Google Cloud. Musisz sprawdzić to roszczenie, gdy ograniczasz dostęp do zasobu tylko do użytkowników z określonych domen. Brak tego roszczenia oznacza, że konto nie należy do domeny hostowanej przez Google. |
Authorization Endpoint (Punkt końcowy autoryzacji)
Punkt końcowy autoryzacji służy do uwierzytelniania użytkownika i uzyskiwania kodu autoryzacji lub tokenów.
URL: https://accounts.google.com/o/oauth2/v2/auth
Obsługiwane metody żądania: GET, POST
Parametry żądania
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
client_id |
string |
Wymagane | Ciąg identyfikatora klienta uzyskany w konsoli Google Cloud. |
nonce |
string |
Opcjonalny | Losowa wartość wygenerowana przez aplikację, która umożliwia ochronę przed powtórzeniem. Wymagany tylko w przypadku żądania tokena tożsamości (gdy parametr response_type zawiera parametr id_token). |
response_type |
string |
Wymagane | Określa przepływ do użycia. Jeśli wartość to code, uruchamia przepływ kodu autoryzacji, który wymaga wysłania żądania POST do punktu końcowego tokena w celu uzyskania tokenów. Jeśli wartość to token, id_token, token id_token lub id_token token, uruchamia przepływ niejawny, który wymaga użycia JavaScriptu w identyfikatorze URI przekierowania do pobrania tokenów z fragmentu identyfikatora URI. Używanie token w jakiejkolwiek formie jest wysoce odradzane, ponieważ ujawnia tokeny dostępu w adresie URL. Ta wartość jest zabroniona w OAuth 2.1. |
response_mode |
string |
Opcjonalny | Określa sposób dostarczania odpowiedzi autoryzacyjnej. Jeśli wartość response_type to code, domyślna wartość to query. W przypadku innych typów odpowiedzi domyślna wartość to fragment. Obsługiwane wartości: query, fragment oraz form_post. |
redirect_uri |
string |
Wymagane | Określa, gdzie jest wysyłana odpowiedź. Wartość tego parametru musi być dokładnie taka sama jak jedna z autoryzowanych wartości przekierowania ustawionych w konsoli Google Cloud (w tym schemat HTTP lub HTTPS, wielkość liter i końcowy znak „/”, jeśli występuje). Identyfikatory URI przekierowania i autoryzowane źródła JavaScriptu muszą być zgodne z regułami weryfikacji opisanymi w dokumentacji Weryfikacja identyfikatorów URI OAuth 2.0. |
scope |
string |
Wymagane | Nieuporządkowana lista zakresów rozdzielonych spacjami. Lista musi zawierać wartość openid, a następnie wartość profile, wartość email lub obie te wartości. Możesz też uwzględnić zakresy inne niż OIDC. Jeśli występuje wartość zakresu profile, token identyfikatora może (ale nie musi) zawierać domyślne deklaracje profile użytkownika. Jeśli występuje wartość zakresu email, token identyfikatora zawiera deklaracje email i email_verified. Więcej informacji znajdziesz w artykule Zakresy OAuth 2.0. |
state |
string |
Zalecane | Nieprzejrzysty ciąg znaków, który jest przekazywany w protokole w obie strony, tzn. jest zwracany jako parametr URI w przypadku przepływu kodu autoryzacji i we fragmencie URI w przypadku przepływu niejawnego. Parametr state może być przydatny do korelowania żądań i odpowiedzi. Ponieważ wartość redirect_uri może zostać odgadnięta, użycie wartości state może zwiększyć pewność, że przychodzące połączenie jest wynikiem żądania uwierzytelnienia zainicjowanego przez aplikację. Zapewnia to ochronę przed atakami, takimi jak fałszowanie żądań z innych witryn. |
access_type |
string |
Opcjonalny | Dozwolone wartości to offline i online. Jeśli Twoja aplikacja musi odświeżać tokeny dostępu, gdy użytkownik nie jest obecny w przeglądarce, użyj offline. Ta wartość jest wymagana, aby uzyskać token odświeżania. |
hd |
string |
Opcjonalny | Uprość proces logowania na konta należące do organizacji Google Cloud. Jeśli podasz domenę organizacji Google Cloud (np. mycollege.edu), możesz wskazać, że interfejs wyboru konta powinien być zoptymalizowany pod kątem kont w tej domenie. Aby zoptymalizować konta organizacji Google Cloud ogólnie, a nie tylko jedną domenę organizacji Google Cloud, ustaw wartość gwiazdki (*): hd=*. |
login_hint |
string |
Opcjonalny | Gdy aplikacja wie, którego użytkownika próbuje uwierzytelnić, może przekazać ten parametr jako wskazówkę do serwera uwierzytelniającego. Przekazanie tej wskazówki powoduje pominięcie selektora konta i wstępne wypełnienie pola e-mail w formularzu logowania lub wybranie odpowiedniej sesji, co może pomóc uniknąć problemów, które występują, gdy aplikacja loguje się na nieprawidłowe konto użytkownika. Wartością może być adres e-mail lub ciąg znaków sub, który jest odpowiednikiem identyfikatora Google użytkownika. |
prompt |
string |
Opcjonalny | Lista rozdzielonych spacjami wartości tekstowych, która określa, czy serwer autoryzacji prosi użytkownika o ponowne uwierzytelnienie i wyrażenie zgody. Możliwe wartości: none (brak interfejsu), consent (prośba o zgodę), select_account (prośba o wybranie konta). |
hl |
string |
Opcjonalny | Tag języka BCP 47 używany do określania języka wyświetlania ekranów logowania, wyboru konta i zgody. Nie zalecamy używania tego parametru, ponieważ ustawienia przeglądarki i preferencje konta Google zwykle lepiej wskazują preferencje językowe użytkownika. |
include_granted_scopes |
boolean |
Opcjonalny | Jeśli ten parametr ma wartość true, a żądanie autoryzacji zostanie przyznane, autoryzacja będzie obejmować wszystkie poprzednie autoryzacje przyznane tej kombinacji użytkownika i aplikacji w przypadku innych zakresów. Więcej informacji znajdziesz w sekcji Autoryzacja przyrostowa. |
claims |
object |
Opcjonalny | Parametr claims służy do określania co najmniej jednego pola opcjonalnego, które ma być uwzględnione w odpowiedzi UserInfo lub tokenie identyfikatora. Aby poprosić o auth_time roszczenie, użyj claims={\"id_token\":{\"auth_time\":{\"essential\":true}}}. |
Parametry odpowiedzi
Odpowiedź autoryzacyjna jest dostarczana do adresu URI przekierowania klienta (redirect_uri) za pomocą przekierowania HTTP GET. Parametry odpowiedzi są dołączane do identyfikatora URI przekierowania w ciągu zapytania lub fragmencie adresu URL w zależności od wartości parametrów response_type i response_mode.
| Parametr | Typ | Opis |
|---|---|---|
iss |
string |
Identyfikator wydawcy. Zgodnie z dokumentem RFC 9207 ten parametr jest zawsze zwracany i ma wartość https://accounts.google.com. |
code |
string |
Kod autoryzacji, który można wymienić na token dostępu i token identyfikatora. |
state |
string |
Ta sama wartość co parametr state z żądania. |
id_token |
string |
Token sieciowy JSON (JWT), który zawiera informacje o tożsamości użytkownika. |
access_token |
string |
Token dostępu, który można wysłać do interfejsu API Google. |
token_type |
string |
Typ zwracanego tokena. Zawsze Bearer. |
expires_in |
integer |
Okres ważności tokena dostępu w sekundach od momentu jego wydania. |
scope |
string |
Zakresy dostępu przyznane przez code lub access_token wyrażone jako lista ciągów znaków oddzielonych spacjami z uwzględnieniem wielkości liter. |
error |
string |
Kod błędu, jeśli żądanie się nie powiodło. |
error_description |
string |
Opis błędu, jeśli żądanie nie powiodło się. |
Odpowiedzi z błędem
W przypadku punktu końcowego autoryzacji błędy są zwracane do klientaredirect_uri jako parametry w ciągu zapytania lub fragmencie adresu URL albo wyświetlane użytkownikowi jako strona błędu hostowana przez Google.
Błędy przekierowania
Do redirect_uri mogą być zwracane te kody błędów:
| Błąd | Opis |
|---|---|
access_denied |
Użytkownik lub serwer autoryzacji odrzucił żądanie. |
invalid_request |
W żądaniu brakuje wymaganego parametru, zawiera ono nieprawidłową wartość parametru lub parametr występuje w nim więcej niż raz albo jest ono nieprawidłowo sformatowane. |
unauthorized_client |
Klient nie ma uprawnień do żądania kodu autoryzacji przy użyciu tej metody. |
unsupported_response_type |
Serwer autoryzacji nie obsługuje uzyskiwania kodu autoryzacji za pomocą tej metody. |
invalid_scope |
Żądany zakres jest nieprawidłowy, nieznany lub błędnie sformatowany. |
Błędy widoczne dla użytkownika
W niektórych przypadkach, np. gdy parametr client_id lub redirect_uri jest nieprawidłowy, serwer autoryzacji nie może bezpiecznie przekierować użytkownika z powrotem do aplikacji.
W takich przypadkach użytkownikowi wyświetla się bezpośrednio strona błędu.
| Błąd | Opis |
|---|---|
admin_policy_enforced |
Konto Google nie może autoryzować co najmniej jednego z zakresów, o które prosisz, ze względu na zasady administratora Google Workspace. Więcej informacji o tym, jak administrator może ograniczyć dostęp, dopóki nie zostanie on wyraźnie przyznany identyfikatorowi klienta OAuth, znajdziesz w artykule pomocy dla administratorów Google Workspace. |
disallowed_useragent |
Punkt końcowy autoryzacji jest wyświetlany w osadzonym agencie użytkownika, który jest niedozwolony przez zasady Google dotyczące protokołu OAuth 2.0. |
org_internal |
Identyfikator klienta OAuth w żądaniu jest częścią projektu ograniczającego dostęp do kont Google w określonej organizacji Google Cloud. |
deleted_client |
Klient OAuth używany do wysyłania żądania został usunięty. Usunięcie może nastąpić ręcznie lub automatycznie w przypadku nieużywanych klientów. |
invalid_grant |
Podczas korzystania z PKCE parametr code_challenge jest nieprawidłowy lub go brakuje. Podczas odświeżania tokena dostępu lub korzystania z autoryzacji przyrostowej token mógł wygasnąć, zostać unieważniony lub konto użytkownika mogło zostać usunięte lub wyłączone. |
redirect_uri_mismatch |
Parametr redirect_uri przekazany w żądaniu nie jest zgodny z autoryzowanym identyfikatorem URI przekierowania dla identyfikatora klienta. Sprawdź autoryzowane identyfikatory URI przekierowania w konsoli Google Cloud. Ten błąd może też wystąpić, jeśli żądanie korzysta z wycofanego procesu uwierzytelniania OAuth poza pasmem (OOB). |
invalid_client |
Pochodzenie, z którego wysłano żądanie, nie jest autoryzowane w przypadku tego klienta, konfiguracja klienta jest nieprawidłowa lub tajny klucz klienta OAuth jest nieprawidłowy. |
origin_mismatch |
Schemat, domena lub port JavaScriptu, z którego pochodzi żądanie autoryzacji, nie pasuje do autoryzowanego identyfikatora URI źródła JavaScriptu zarejestrowanego dla identyfikatora klienta OAuth. Sprawdź autoryzowane źródła JavaScript w konsoli Google Cloud. |
invalid_request |
Wystąpił problem z żądaniem. Może to być spowodowane nieprawidłowo sformułowanym żądaniem, brakiem wymaganych parametrów lub użyciem metody autoryzacji, której Google nie obsługuje. |
Token Endpoint (Punkt końcowy tokena)
Punkt końcowy tokena służy do wymiany kodu autoryzacji na token dostępu i token identyfikatora.
URL: https://oauth2.googleapis.com/token
Obsługiwana metoda żądania: POST
Parametry żądania (przyznawanie kodu autoryzacji)
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
code |
string |
Wymagane | Kod autoryzacji otrzymany z punktu końcowego autoryzacji. |
client_id |
string |
Wymagane | Identyfikator klienta aplikacji uzyskany w konsoli Google Cloud. |
client_secret |
string |
Wymagane | Tajny klucz klienta aplikacji uzyskany w konsoli Google Cloud. |
redirect_uri |
string |
Wymagane | Identyfikator URI przekierowania użyty w początkowej prośbie o autoryzację. Identyfikatory URI przekierowania i autoryzowane źródła JavaScriptu muszą być zgodne z regułami weryfikacji opisanymi w dokumentacji Weryfikacja identyfikatorów URI OAuth 2.0. |
grant_type |
string |
Wymagane | Trzeba wysłać do: authorization_code. |
Parametry żądania (przepływ na urządzeniu)
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
client_id |
string |
Wymagane | Identyfikator klienta aplikacji uzyskany w konsoli Google Cloud. |
client_secret |
string |
Wymagane | Tajny klucz klienta aplikacji uzyskany w konsoli Google Cloud. |
device_code |
string |
Wymagane | Wartość device_code zwrócona przez punkt końcowy autoryzacji urządzenia. |
grant_type |
string |
Wymagane | Trzeba wysłać do: urn:ietf:params:oauth:grant-type:device_code. |
Parametry żądania (odświeżanie tokena dostępu)
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
client_id |
string |
Wymagane | Identyfikator klienta aplikacji uzyskany w konsoli Google Cloud. |
client_secret |
string |
Wymagane | Tajny klucz klienta aplikacji uzyskany w konsoli Google Cloud. |
grant_type |
string |
Wymagane | Musi mieć wartość refresh_token zgodnie ze specyfikacją OpenID Connect Refresh Tokens. |
refresh_token |
string |
Wymagane | Token odświeżania zwrócony z wymiany kodu autoryzacji. |
scope |
string |
Opcjonalny | Lista zakresów oddzielonych spacjami, o które prosisz w przypadku nowego tokena dostępu. Żądane zakresy muszą być podzbiorem zakresów przyznanych w pierwotnej prośbie o autoryzację. |
Treść odpowiedzi
Pola odpowiedzi są zwracane w obiekcie JSON w treści odpowiedzi HTTP na żądanie POST wysłane przez osobę wysyłającą żądanie do https://oauth2.googleapis.com/token.
| Pole | Typ | Opis |
|---|---|---|
access_token |
string |
Token dostępu, który można wysłać do interfejsu API Google. |
expires_in |
integer |
Okres ważności tokena dostępu w sekundach od momentu jego wydania. |
id_token |
string |
Token sieciowy JSON (JWT), który zawiera informacje o tożsamości użytkownika. Ten token jest zwracany podczas początkowej wymiany kodu autoryzacji, a także podczas żądania tokena odświeżania, jeśli przyznano zakres openid. |
scope |
string |
Zakresy dostępu przyznane przez access_token w postaci listy ciągów znaków rozdzielonych spacjami, w których wielkość liter jest rozróżniana. |
token_type |
string |
Typ zwracanego tokena. Zawsze Bearer. |
refresh_token |
string |
(Opcjonalnie) Token, którego można użyć do uzyskania nowych tokenów dostępu. To pole jest zwracane tylko w początkowej wymianie kodu autoryzacji, jeśli wysłano żądanie access_type=offline. |
refresh_token_expires_in |
integer |
(Opcjonalnie) Pozostały czas życia tokena odświeżania w sekundach. Ta wartość jest ustawiana tylko wtedy, gdy użytkownik przyzna dostęp czasowy. |
Odpowiedzi na błędy
Jeśli żądanie się nie powiedzie, serwer autoryzacji zwraca obiekt JSON z tymi polami:
| Pole | Typ | Opis |
|---|---|---|
error |
string |
Kod błędu. |
error_description |
string |
Opis błędu, jeśli żądanie nie powiodło się. |
W tabeli poniżej znajdziesz potencjalne kody błędów i powiązane z nimi kody stanu HTTP:
| Błąd | Kod stanu HTTP | Opis |
|---|---|---|
invalid_request |
400 |
W żądaniu brakuje wymaganego parametru, zawiera ono nieprawidłową wartość parametru lub jest nieprawidłowo sformatowane. |
invalid_client |
401 |
Nie udało się uwierzytelnić klienta. Na przykład znak client_id lub client_secret jest nieprawidłowy albo typ klienta jest nieprawidłowy. |
invalid_grant |
400 |
Podany kod autoryzacji, token odświeżania lub kod urządzenia jest nieprawidłowy, wygasł, został cofnięty lub nie pasuje do identyfikatora URI przekierowania użytego w żądaniu autoryzacji. |
unauthorized_client |
400 |
Uwierzytelniony klient nie ma uprawnień do używania tego typu autoryzacji. |
unsupported_grant_type |
400 |
Serwer autoryzacji nie obsługuje typu uprawnień autoryzacji. |
invalid_scope |
400 |
Żądany zakres jest nieprawidłowy, nieznany lub błędnie sformatowany. |
authorization_pending |
428 |
(Device Flow) Użytkownik nie ukończył jeszcze procesu autoryzacji. |
slow_down |
429 |
(Device Flow) Urządzenie zbyt często wysyła żądania sondowania. |
access_denied |
403 |
(Device Flow) Użytkownik odmówił przyznania dostępu do urządzenia. |
expired_token |
400 |
(Device Flow) device_code stracił ważność. |
admin_policy_enforced |
400 |
Użytkownik nie może autoryzować żądanych zakresów ze względu na zasady egzekwowane przez administratora Google Workspace. |
org_internal |
403 |
Identyfikator klienta jest częścią projektu, który ogranicza dostęp do konkretnej organizacji Google Cloud. |
Punkt końcowy autoryzacji urządzenia
Punkt końcowy autoryzacji urządzenia jest używany w przepływie OAuth 2.0 na urządzeniu do uzyskiwania kodu użytkownika i URL-a do weryfikacji na urządzeniach o ograniczonych możliwościach wprowadzania danych.
URL: https://oauth2.googleapis.com/device/code
Obsługiwana metoda żądania: POST
Parametry żądania
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
client_id |
string |
Wymagane | Identyfikator klienta aplikacji uzyskany w konsoli Google Cloud. |
scope |
string |
Wymagane | Lista zakresów oddzielonych spacjami, które identyfikują zasoby, do których aplikacja może uzyskać dostęp w imieniu użytkownika. |
Treść odpowiedzi
Odpowiedź jest wysyłana w formie obiektu JSON, który zawiera te pola:
| Pole | Typ | Opis |
|---|---|---|
device_code |
string |
Wartość, którą Google jednoznacznie przypisuje do identyfikowania urządzenia, na którym działa aplikacja żądająca autoryzacji. |
user_code |
string |
Wartość z uwzględnieniem wielkości liter, która informuje Google o zakresach, do których aplikacja chce uzyskać dostęp. Interfejs użytkownika poprosi użytkownika o wpisanie tej wartości na osobnym urządzeniu z większymi możliwościami wprowadzania danych. |
verification_url |
string |
Adres URL, do którego użytkownik musi przejść na osobnym urządzeniu, aby wpisać user_code i przyznać lub odmówić dostępu do aplikacji. |
expires_in |
integer |
Czas (w sekundach), przez który device_code i user_code są ważne. |
interval |
integer |
Czas (w sekundach), przez jaki urządzenie powinno czekać między żądaniami sondowania. |
Punkt końcowy unieważnienia
Punkt końcowy unieważnienia umożliwia aplikacji unieważnienie tokena dostępu lub tokena odświeżania.
URL: https://oauth2.googleapis.com/revoke
Obsługiwana metoda żądania: POST
Parametry żądania
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
token |
string |
Wymagane | Token dostępu lub token odświeżania, który chcesz unieważnić. |
Treść odpowiedzi
Jeśli unieważnienie się powiedzie, odpowiedź będzie pusta w przypadku HTTP 200 OK. Jeśli wycofanie się nie powiedzie, zwracana jest odpowiedź o błędzie w obiekcie JSON.
| Pole | Typ | Opis |
|---|---|---|
error |
string |
Kod błędu, jeśli żądanie się nie powiodło. |
error_description |
string |
Opis błędu, jeśli żądanie nie powiodło się. |
W tabeli poniżej znajdziesz opis potencjalnych kodów błędów:
| Błąd | Opis |
|---|---|
invalid_token |
Token podany w żądaniu wygasł lub został już unieważniony. |
invalid_request |
W żądaniu brakuje wymaganego parametru, zawiera ono nieprawidłową wartość parametru lub jest nieprawidłowo sformatowane. |
Punkt końcowy UserInfo
Punkt końcowy UserInfo zwraca informacje o profilu uwierzytelnionego użytkownika.
URL: https://openidconnect.googleapis.com/v1/userinfo
Obsługiwane metody żądania: GET, POST
Nagłówki żądania
| Nagłówek | Opis |
|---|---|
Authorization |
Wymagane. Musi być ustawiona na Bearer: access_token. |
Treść odpowiedzi
Pola odpowiedzi są zwracane w obiekcie JSON w treści odpowiedzi HTTP na żądanie GET lub POST wysłane przez użytkownika do https://openidconnect.googleapis.com/v1/userinfo.
| Pole | Typ | Opis |
|---|---|---|
sub |
string |
Wymagane. Identyfikator użytkownika, niepowtarzalny wśród wszystkich kont Google i nieużywany ponownie. Ciąg znaków z uwzględnieniem wielkości liter, który nie może przekraczać 255 znaków. |
name |
string |
Pełne imię i nazwisko użytkownika w możliwej do wyświetlenia postaci. |
given_name |
string |
Imię lub imiona użytkownika. |
family_name |
string |
Nazwisko użytkownika. |
picture |
string |
Adres URL zdjęcia profilowego użytkownika. |
email |
string |
Adres e-mail użytkownika. |
email_verified |
boolean |
Informacja, czy adres e-mail użytkownika został zweryfikowany. |
hd |
string |
Domena hostowana powiązana z organizacją Google Workspace lub Cloud użytkownika. |
Punkt końcowy tokeninfo
Punkt końcowy tokeninfo to implementacja Google służąca do weryfikacji tokena identyfikatora na potrzeby debugowania.
URL: https://oauth2.googleapis.com/tokeninfo
Obsługiwane metody żądania: GET, POST
Parametry żądania
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
id_token |
string |
Wymagane | Token identyfikatora do zweryfikowania. |
Treść odpowiedzi
Pola odpowiedzi są zwracane w obiekcie JSON w treści odpowiedzi HTTP na żądanie GET lub POST wysłane przez użytkownika do https://oauth2.googleapis.com/tokeninfo.
| Pole | Typ | Opis |
|---|---|---|
iss |
string |
Identyfikator wydawcy. Zawsze https://accounts.google.com. |
sub |
string |
Identyfikator użytkownika, niepowtarzalny wśród wszystkich kont Google i nieużywany ponownie. |
aud |
string |
Odbiorcy, dla których jest przeznaczony token tożsamości. Jest to identyfikator klienta aplikacji uzyskany w konsoli Google Cloud. |
iat |
integer |
Godzina wydania tokena JWT. Reprezentowany jako liczba sekund od 1970-01-01T0:0:0Z w czasie UTC. |
exp |
integer |
Czas wygaśnięcia, po którym token tożsamości nie może być akceptowany do przetwarzania. Reprezentowany jako liczba sekund od 1970-01-01T0:0:0Z w czasie UTC. |
email |
string |
Adres e-mail użytkownika. |
email_verified |
string |
Informacja, czy adres e-mail użytkownika został zweryfikowany. Wartość to ciąg znaków "true" lub "false". |
access_type |
string |
Typ dostępu, o który proszono w pierwotnej prośbie o autoryzację. |
azp |
string |
Identyfikator klienta autoryzowanej aplikacji prezentującej token uzyskany z konsoli Google Cloud. |
scope |
string |
Lista zakresów przyznanych tokenowi, rozdzielona spacjami. |
alg |
string |
Algorytm użyty do podpisania tokena tożsamości. |
kid |
string |
Identyfikator klucza użytego do podpisania tokena tożsamości. |
typ |
string |
Typ tokena. Zawsze JWT. |