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 przesył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 widać ogólne kroki uwierzytelniania i autoryzacji w przypadku interfejsów Google Workspace API:

Ogólne kroki implementacji uwierzytelniania i autoryzacji
Rysunek 1. Ogólne kroki 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. Prośba o zasoby: 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 zatwierdzone przez użytkownika zakresy dostępu 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 zwykle odbywa się 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. Aplikacja prosi o autoryzację, informując użytkownika, że chce działać w jego imieniu. Jeśli użytkownik zezwoli na żądanie, aplikacja użyje swoich unikalnych danych logowania, aby uzyskać od Google token dostępu.

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 forma identyfikacji, np. unikalny tajny ciąg znaków znany tylko deweloperowi aplikacji i serwerowi uwierzytelniania. Google obsługuje te dane logowania: klucz interfejsu API, identyfikator klienta OAuth 2.0 i konta usługi.

Klucz interfejsu API
Dane logowania używane do wysyłania żądań dostępu do danych publicznych, takich jak dane udostępniane za pomocą interfejsu Maps API. W ten sposób można też uzyskać dostęp do publicznych plików Google Workspace udostępnionych za pomocą ustawienia „Każdy w internecie, kto ma ten link”,
chociaż większość danych Google Workspace wymaga OAuth 2.0.
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 API Google Workspace. 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 osobom 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 uwierzytelniającymi 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 do interakcji między serwerami, np. w przypadku aplikacji bez interfejsu użytkownika, która działa jako proces umożliwiający dostęp do danych lub wykonywanie operacji. Konta usług 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 prosisz, i wybrać, jaki dostęp przyznać. 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 żądanych 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 potrzebny tylko wtedy, gdy typ aplikacji to aplikacja serwera internetowego lub aplikacja instalowana.

Token dostępu

Token przyznający dostęp do interfejsu Google Workspace API. Pojedynczy token dostępu może przyznawać różny stopień dostępu do wielu interfejsów API, zwany zakresami. Kod autoryzacji aplikacji żąda tokenów dostępu i używa ich do wywoływania interfejsów Google Workspace API.

Serwer zasobów

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

Framework 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 zabezpieczeń: konta użytkowników i konta usługi. 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 wszystkich, 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 w konsoli Google Cloud pojawi się prośba o wybranie typu aplikacji. Rodzaje aplikacji to: aplikacja internetowa (JavaScript), Android, aplikacja Chrome, iOS, telewizory i urządzenia z ograniczonymi możliwościami wprowadzania danych, aplikacja na komputer (nazywana też „zainstalowaną aplikacją”) i uniwersalna platforma Windows (UWP).

Konto usługi

Specjalny typ konta Google przeznaczony dla użytkownika, który nie jest człowiekiem i który musi się uwierzytelnić oraz uzyskać autoryzację, aby mieć dostęp 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żytkowników, do których zwykle uzyskuje się dostęp za pomocą interfejsów Google Workspace API. Konto usługi może jednak uzyskać dostęp do danych użytkownika, wdrażając delegowanie uprawnień w całej domenie. Więcej informacji znajdziesz w artykule Informacje o kontach usługi.

Przekazywanie uprawnień 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 administracją na danych użytkowników. Aby przekazać uprawnienia w ten sposób, 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.