Więcej informacji o uwierzytelnianiu i autoryzacji

Uwierzytelnianie i autoryzacja to mechanizmy służące odpowiednio do weryfikacji tożsamości i dostępu do zasobów. W tym dokumencie znajdziesz kluczowe terminy, które warto znać przed wdrożeniem w aplikacji uwierzytelniania i autoryzacji.

Uwierzytelnianie określa, kto wysyła żądanie. Autoryzacja określa, do jakich zasobów ma dostęp osoba wysyłająca żądanie i jaki jest poziom tego dostępu. Uwierzytelnianie jest warunkiem wstępnym autoryzacji. Nie możesz określić, do jakich zasobów ma uzyskać dostęp użytkownik, bez wcześniejszego ustalenia jego tożsamości. Szczegółową definicję znajdziesz w sekcji Ważne terminy.

Oto uproszczony przykład rezerwacji hotelu. Po przyjeździe do hotelu pracownik recepcji poprosi Cię o dokument tożsamości, aby potwierdzić rezerwację. Dokument tożsamości potwierdza Twoją tożsamość w hotelu. Pracownik recepcji wręcza Ci klucz do pokoju. Ten klucz umożliwia dostęp do niektórych zasobów w hotelu, takich jak pokój, siłownia i centrum biznesowe. Klucz hotelowy uprawnia Cię do korzystania z tych zasobów.

Omówienie procesu

Na diagramie poniżej przedstawiono ogólne kroki uwierzytelniania i autoryzacji w przypadku interfejsów Google Workspace API:

Ogólne kroki implementacji uwierzytelniania i autoryzacji
Rysunek 1. Ogólne etapy implementacji uwierzytelniania i autoryzacji
  1. Skonfiguruj projekt i aplikację Google Cloud: podczas tworzenia aplikacji zarejestruj ją w konsoli Google Cloud, określając zakresy autoryzacji i dane logowania, aby uwierzytelnić aplikację za pomocą klucza interfejsu API, danych logowania użytkownika lub danych logowania konta usługi.

  2. Uwierzytelnianie aplikacji w celu uzyskania dostępu: gdy aplikacja jest uruchomiona, oceniane są zarejestrowane dane logowania. Jeśli aplikacja uwierzytelnia się jako użytkownik, może się wyświetlić prośba o zalogowanie.

  3. Żądanie zasobów: gdy Twoja aplikacja potrzebuje dostępu do zasobów Google, wysyła do Google prośbę z użyciem odpowiednich zakresów dostępu, które zostały wcześniej zarejestrowane.

  4. Poproś użytkownika o zgodę: jeśli aplikacja uwierzytelnia się jako użytkownik, Google wyświetla ekran zgody OAuth, aby użytkownik mógł zdecydować, czy przyznać aplikacji dostęp do żądanych danych.

  5. Wysyłanie zatwierdzonego żądania zasobów: jeśli użytkownik wyrazi zgodę na zakresy dostępu, aplikacja połączy dane logowania i zakresy dostępu zatwierdzone przez użytkownika w jedno żądanie. Żądanie jest wysyłane na serwer autoryzacji Google w celu uzyskania tokena dostępu.

  6. Google zwraca token dostępu: token dostępu zawiera listę przyznanych zakresów dostępu. Jeśli zwrócona lista zakresów jest bardziej ograniczona niż zakresy dostępu, o które prosi aplikacja, wyłącza ona wszystkie funkcje ograniczone przez token.

  7. Dostęp do żądanych zasobów: aplikacja używa tokena dostępu od Google, aby wywoływać odpowiednie interfejsy API i uzyskiwać dostęp do zasobów.

  8. Uzyskiwanie tokena odświeżania (opcjonalnie): jeśli aplikacja potrzebuje dostępu do interfejsu Google API przez okres dłuższy niż czas ważności pojedynczego tokena dostępu, może uzyskać token odświeżania.

  9. Prośba o więcej zasobów: jeśli potrzebny jest dodatkowy dostęp, aplikacja prosi użytkownika o przyznanie nowych zakresów dostępu, co powoduje wysłanie nowej prośby o token dostępu (kroki 3–6).

Ważna terminologia

Poniżej znajdziesz listę terminów związanych z uwierzytelnianiem i autoryzacją:

Uwierzytelnianie

Proces potwierdzania, że podmiot, którym może być użytkownik lub aplikacja działająca w jego imieniu, jest tym, za kogo się podaje. Podczas pisania aplikacji Google Workspace musisz znać te typy uwierzytelniania:

Uwierzytelnianie użytkowników
Proces uwierzytelniania (logowania) użytkownika w aplikacji. Uwierzytelnianie użytkownika odbywa się zwykle w ramach procesu logowania, w którym użytkownik używa kombinacji nazwy użytkownika i hasła, aby potwierdzić swoją tożsamość w aplikacji. Uwierzytelnianie użytkownika można zintegrować z aplikacją za pomocą funkcji Zaloguj się przez Google.
Uwierzytelnianie aplikacji
Proces uwierzytelniania aplikacji bezpośrednio w usługach Google w imieniu użytkownika, który ją uruchamia. Uwierzytelnianie aplikacji jest zwykle przeprowadzane przy użyciu wstępnie utworzonych danych logowania w kodzie aplikacji.
Autoryzacja

Uprawnienia lub „upoważnienia”, które podmiot ma do uzyskiwania dostępu do danych lub wykonywania operacji. Autoryzacja odbywa się za pomocą kodu napisanego w aplikacji. Ten kod informuje użytkownika, że aplikacja chce działać w jego imieniu, a jeśli użytkownik na to zezwoli, używa unikalnych danych logowania aplikacji, aby uzyskać od Google token dostępu, który służy do uzyskiwania dostępu do danych lub wykonywania operacji.

Dane logowania

Forma identyfikacji używana w zabezpieczeniach oprogramowania. W przypadku uwierzytelniania dane logowania to często kombinacja nazwy użytkownika i hasła. W przypadku autoryzacji interfejsów Google Workspace API dane logowania to zwykle jakaś forma identyfikacji, np. unikalny tajny ciąg znaków znany tylko deweloperowi aplikacji i serwerowi uwierzytelniania. Google obsługuje te dane logowania do uwierzytelniania: klucz interfejsu API, identyfikator klienta OAuth 2.0 i konta usługi.

Klucz interfejsu API
Dane logowania użyte do wysłania prośby o dostęp do danych publicznych, np. danych udostępnionych za pomocą interfejsu Maps API lub plików Google Workspace udostępnionych za pomocą ustawienia „Każdy w internecie, kto ma ten link” w ustawieniach udostępniania Google Workspace.
Identyfikator klienta OAuth 2
Dane logowania używane do żądania dostępu do danych należących do użytkownika. Jest to podstawowe dane logowania używane podczas wysyłania próśb o dostęp do danych za pomocą interfejsów Google Workspace API. Ten rodzaj danych logowania wymaga zgody użytkownika.
Tajny klucz klienta
Ciąg znaków, który powinien być znany tylko Twojej aplikacji i serwerowi autoryzacji. Klucz tajny klienta chroni dane użytkownika, ponieważ przyznaje tokeny tylko autoryzowanym podmiotom wysyłającym żądania. Nigdy nie umieszczaj w aplikacji niezaszyfrowanego tajnego klucza klienta. Zalecamy bezpieczne przechowywanie tajnego klucza klienta. Więcej informacji znajdziesz w artykule Bezpieczne zarządzanie danymi logowania klienta.
Klucze konta usługi
Używane przez konta usługi do uzyskiwania autoryzacji w usłudze Google.
Konto usługi
Dane logowania używane w interakcjach między serwerami, np. w przypadku aplikacji bez interfejsu, która działa jako proces, aby uzyskać dostęp do niektórych danych lub wykonać pewne operacje. Konta usługi są zwykle używane do uzyskiwania dostępu do danych i operacji w chmurze. Jednak w połączeniu z przekazywaniem uprawnień w obrębie całej domeny mogą służyć do uzyskiwania dostępu do danych użytkowników.
Zakres

Ciąg URI OAuth 2.0, który określa poziom dostępu do zasobów lub działań przyznany aplikacji. W przypadku Google Workspace identyfikatory URI zakresu autoryzacji zawierają nazwę aplikacji Google Workspace, rodzaj danych, do których ma ona dostęp, oraz poziom dostępu. Użytkownicy Twojej aplikacji mogą sprawdzić zakresy, o które prosi aplikacja, i wybrać, do których danych chcą jej przyznać dostęp. Następnie serwer uwierzytelniania Google zwraca do Twojej aplikacji dozwolone zakresy w tokenie dostępu. Więcej informacji znajdziesz w artykule Wybieranie zakresów dla aplikacji.

Serwer autoryzacji

Serwer Google, który przyznaje dostęp do danych i operacji wymaganych przez aplikację za pomocą tokena dostępu.

Kod autoryzacji

Kod wysłany z serwera autoryzacji, który służy do uzyskania tokena dostępu. Kod jest wymagany tylko wtedy, gdy typ aplikacji to aplikacja serwera internetowego lub zainstalowana aplikacja.

Token dostępu

Token przyznający dostęp do interfejsu Google Workspace API. Jeden token dostępu może przyznawać różny stopień dostępu do wielu interfejsów API, zwany zakresami. Aplikacja wysyła żądania kodu autoryzacji, aby uzyskać tokeny dostępu, i używa ich do wywoływania interfejsów Google Workspace API.

Serwer zasobów

Serwer hostujący interfejs API, który aplikacja chce wywołać.

Platforma OAuth 2.0

Standard, którego aplikacja może używać, aby zapewnić sobie „bezpieczny dostęp delegowany” lub dostęp do danych i operacji w imieniu użytkownika aplikacji. Mechanizmy uwierzytelniania i autoryzacji używane w aplikacji stanowią implementację platformy OAuth 2.0.

Principal

Podmiot, zwany też tożsamością, któremu można przyznać dostęp do zasobu. Interfejsy API Google Workspace obsługują 2 rodzaje podmiotów: konta użytkowników i konta usług. Więcej informacji znajdziesz w sekcji Podmioty.

Typ danych

W kontekście uwierzytelniania i autoryzacji typ danych odnosi się do podmiotu, który jest właścicielem danych, do których Twoja aplikacja próbuje uzyskać dostęp. Dostępne są 3 typy danych:

Dane z domeny publicznej
Dane dostępne dla każdego, np. niektóre dane z Map Google. Dostęp do tych danych uzyskuje się zwykle za pomocą klucza interfejsu API.
Dane użytkowników
Dane należące do konkretnego użytkownika lub grupy, np. pliki konkretnego użytkownika na Dysku Google. Dostęp do tego typu danych uzyskuje się zazwyczaj za pomocą identyfikatora klienta OAuth 2 lub konta usługi.
Dane w chmurze
Dane należące do projektu Google Cloud. Dostęp do tego typu danych uzyskuje się zwykle za pomocą konta usługi.
Zgoda użytkownika

Krok autoryzacji, w którym użytkownik aplikacji musi zezwolić jej na dostęp do danych i wykonywanie operacji w jego imieniu.

Typ aplikacji

Typ aplikacji, którą chcesz utworzyć. Podczas tworzenia danych logowania za pomocą konsoli Google Cloud pojawi się prośba o wybranie typu aplikacji. Typy aplikacji to: aplikacja internetowa (JavaScript), aplikacja na Androida, aplikacja na Chrome, aplikacja na iOS, aplikacja na telewizory i urządzenia z ograniczonymi możliwościami wprowadzania danych, aplikacja na komputery (nazywana też „aplikacją zainstalowaną”) oraz aplikacja na platformę uniwersalną Windows (UWP).

Konto usługi

Specjalny typ konta Google przeznaczony dla użytkowników, którzy nie są ludźmi i muszą uwierzytelniać się oraz uzyskiwać autoryzację dostępu do danych. Aplikacja przyjmuje tożsamość konta usługi do wywoływania interfejsów API Google, by użytkownicy nie byli w to bezpośrednio zaangażowani. Same konta usługi nie mogą być używane do uzyskiwania dostępu do danych użytkownika, do których zwykle uzyskuje się dostęp za pomocą interfejsów API Workspace. Konto usługi może jednak uzyskać dostęp do danych użytkownika, wdrażając przekazywanie uprawnień w całej domenie. Więcej informacji znajdziesz w artykule Informacje o kontach usługi.

Przekazywanie dostępu w całej domenie

Funkcja administracyjna, która może autoryzować aplikację do uzyskiwania dostępu do danych użytkowników w imieniu użytkowników w organizacji Google Workspace. Przekazywanie dostępu w całej domenie może być używane do wykonywania zadań związanych z administrowaniem danymi użytkowników. Aby w ten sposób przekazać uprawnienia, administratorzy Google Workspace używają kont usług z uwierzytelnianiem OAuth 2.0. Ze względu na możliwości tej funkcji tylko superadministratorzy mogą włączyć przekazywanie uprawnień w całej domenie. Więcej informacji znajdziesz w artykule Przekazywanie kontu usługi uprawnień do całej domeny.

Następny krok

Skonfiguruj ekran zgody OAuth w aplikacji, aby użytkownicy mogli zrozumieć i zatwierdzić, jaki dostęp aplikacja ma do ich danych.