Uwierzytelnianie i autoryzacja to mechanizmy używane odpowiednio do weryfikacji tożsamości i dostępu do zasobów. W tym dokumencie opisujemy najważniejsze terminy, które musisz znać, zanim wdrożysz uwierzytelnianie i autoryzację w swojej aplikacji.
Uwierzytelnianie wskazuje kto wysyła żądanie. Autoryzacja określa, do jakich zasobów osoba zgłaszająca ma dostęp i jaki ma poziom dostępu. Uwierzytelnianie to warunek wstępny autoryzacji. Bez uprzedniego ustalenia tożsamości osoby wysyłającej prośbę nie możesz ustalić, do których zasobów mają dostęp. Bardziej szczegółową definicję znajdziesz w sekcji dotyczącej ważnej terminologii.
Przeanalizujmy poniższy uproszczony przykład rezerwacji hotelowej. Po przybyciu do hotelu recepcja prosi o dokument w celu zweryfikowania rezerwacji. Twój dokument tożsamości uwierzytelniał Cię w hotelu. Pracownik recepcji wręcza Ci klucz hotelowy. Zapewnia on dostęp do niektórych zasobów hotelu, takich jak pokój hotelowy, siłownia i centrum biznesowe. Klucz hotelowy upoważnia Cię do dostępu do tych zasobów.
Omówienie procesu
Poniższy diagram przedstawia ogólne kroki uwierzytelniania i autoryzacji w interfejsach Google Workspace API:
Skonfiguruj projekt i aplikację Google Cloud: w trakcie tworzenia aplikacji rejestrujesz aplikację w konsoli Google Cloud, definiując zakresy autoryzacji i dane logowania na potrzeby uwierzytelniania aplikacji za pomocą klucza interfejsu API, danych logowania użytkownika lub danych logowania do konta usługi.
Uwierzytelnij aplikację, aby uzyskać dostęp: po uruchomieniu aplikacji oceniane są zarejestrowane dane uwierzytelniające. Jeśli aplikacja uwierzytelnia się jako użytkownik, może pojawić się prośba o zalogowanie.
Wysyłanie próśb o zasoby: gdy aplikacja potrzebuje dostępu do zasobów Google, prosi Google o dostęp do odpowiednich wcześniej zarejestrowanych zakresów dostępu.
Poproś o zgodę użytkownika: jeśli Twoja aplikacja uwierzytelnia się jako użytkownik, Google wyświetla ekran zgody OAuth, aby użytkownik mógł zdecydować, czy zezwolić aplikacji na dostęp do żądanych danych.
Wyślij zatwierdzoną prośbę o zasoby: jeśli użytkownik wyrazi zgodę na zakresy dostępu, aplikacja dołączy do żądania dane logowania i zatwierdzone przez użytkownika zakresy dostępu. Żądanie jest wysyłane do serwera autoryzacji Google w celu uzyskania tokena dostępu.
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ż żądane zakresy, aplikacja wyłącza wszystkie funkcje ograniczone przez token.
Dostęp do żądanych zasobów: aplikacja wykorzystuje token dostępu od Google do wywoływania odpowiednich interfejsów API i uzyskiwania dostępu do zasobów.
Uzyskaj token odświeżania (opcjonalnie): jeśli Twoja aplikacja wymaga dostępu do interfejsu API Google wykraczającego poza okres ważności pojedynczego tokena dostępu, może uzyskać token odświeżania.
Poproś o więcej zasobów: jeśli potrzebny jest dodatkowy dostęp, aplikacja poprosi użytkownika o przyznanie nowych zakresów dostępu, co spowoduje wysłanie nowej prośby o uzyskanie tokena dostępu (kroki 3–6).
Ważna terminologia
Poniżej znajduje się lista terminów związanych z uwierzytelnianiem i autoryzacją:
- Uwierzytelnianie
Działanie polegające na zapewnieniu, że podmiot zabezpieczeń, którym może być użytkownik lub aplikacja działająca w imieniu użytkownika, jest tym, kim jest. Podczas tworzenia aplikacji Google Workspace pamiętaj o tych typach uwierzytelniania:
- Uwierzytelnianie użytkowników
- To działanie użytkownika, który uwierzytelnia się (loguje się) w aplikacji. Użytkownik zwykle uwierzytelnia się, korzystając z procesu logowania, w którym do weryfikacji tożsamości użytkownika w aplikacji używa kombinacji nazwy użytkownika i hasła. Uwierzytelnianie użytkownika można włączyć do aplikacji za pomocą funkcji Zaloguj się przez Google.
- Uwierzytelnianie aplikacji
- Aplikacja, która uwierzytelnia się bezpośrednio w usługach Google w imieniu użytkownika korzystającego z niej. Uwierzytelnianie aplikacji odbywa się zwykle za pomocą gotowych danych logowania w kodzie aplikacji.
- Autoryzacja
Uprawnienia (inaczej „autorstwo”), które podmiot zabezpieczeń ma do dostępu do danych lub wykonywania operacji. Autoryzacja jest przeprowadzana za pomocą kodu, który wpisujesz w aplikacji. Kod ten informuje użytkownika, że aplikacja chce działać w jego imieniu i – jeśli jest to dozwolone – wykorzystuje unikalne dane logowania do uzyskania tokenu dostępu od Google służącego do uzyskiwania dostępu do danych lub wykonywania operacji.
- Dane logowania
Forma identyfikacji używana do ochrony oprogramowania. W przypadku uwierzytelniania dane logowania to często kombinacja nazwy użytkownika i hasła. W odniesieniu do autoryzacji interfejsów API Google Workspace dane logowania to zwykle forma identyfikacji, np. unikalny tajny ciąg znaków, znany tylko między deweloperem aplikacji a serwerem uwierzytelniania. Google obsługuje te dane uwierzytelniające: klucz interfejsu API, identyfikator klienta OAuth 2.0 i konta usługi.
- Klucz interfejsu API
- Dane logowania używane do wysyłania próśb o dostęp do danych publicznych, takich jak dane udostępniane za pomocą interfejsu Maps API lub pliki Google Workspace udostępniane przy użyciu ustawienia „Każdy użytkownik internetu mający ten link” w ustawieniach udostępniania Google Workspace.
- Identyfikator klienta OAuth 2
- Dane logowania służące do wysyłania próśb o dostęp do danych należących do użytkownika. Są to podstawowe dane logowania używane podczas wysyłania żądania dostępu do danych za pomocą interfejsów Google Workspace API. Te dane logowania wymagają zgody użytkownika.
- Tajny klucz klienta
- Ciąg znaków, który powinien być znany tylko dla aplikacji i serwera autoryzacji. Tajny klucz klienta chroni dane użytkownika przez przyznawanie tokenów wyłącznie autoryzowanym osobom zgłaszającym. Nigdy nie umieszczaj w aplikacji niezaszyfrowanego tajnego klucza klienta. Zalecamy bezpieczne przechowywanie go. Więcej informacji znajdziesz w artykule o bezpiecznym korzystaniu z danych logowania klienta.
- Klucze konta usługi
- Używane przez konta usługi do uzyskiwania autoryzacji do korzystania z usługi Google.
- Konto usługi
- Dane uwierzytelniające używane w interakcjach między serwerami, np. w aplikacji bez twarzy, która działa jako proces uzyskiwania dostępu do niektórych danych lub wykonywania pewnych czynności. Konta usługi służą zwykle do uzyskiwania dostępu do danych i operacji w chmurze. Jeśli jednak są używane z przekazywaniem uprawnień w całej domenie, można ich używać do uzyskiwania dostępu do danych użytkowników.
- Zakres
Identyfikator URI protokołu OAuth 2.0 określający poziom dostępu do zasobów lub działań przydzielonych aplikacji. W przypadku Google Workspace identyfikatory URI zakresu autoryzacji zawierają nazwę aplikacji Google Workspace, rodzaj danych, do których uzyskuje dostęp, oraz poziom dostępu. Użytkownicy Twojej aplikacji mogą sprawdzić żądane zakresy i wybrać uprawnienia dostępu, a potem serwer uwierzytelniania Google zwróci dozwolone zakresy do Twojej aplikacji w tokenie dostępu. Więcej informacji znajdziesz w artykule Jak wybrać zakresy aplikacji.
- Serwer autoryzacji
Serwer Google, który za pomocą tokena dostępu przyznaje dostęp do żądanych przez aplikację danych i operacji.
- Kod autoryzacji
Kod wysłany z serwera autoryzacji, który służy do uzyskania tokena dostępu. Kod jest potrzebny tylko wtedy, gdy typem aplikacji jest aplikacja serwera WWW lub aplikacja zainstalowana.
- Token dostępu
Token przyznający dostęp do interfejsu Google Workspace API. Jeden token dostępu może przyznawać różne poziomy dostępu do wielu interfejsów API – nazywane zakresami. Kod autoryzacji aplikacji żąda tokenów dostępu i używa ich do wywoływania interfejsów API Google Workspace.
- Serwer zasobów
Serwer hostujący interfejs API, który chce wywoływać Twoja aplikacja.
- Platforma OAuth 2.0
Standard, za pomocą którego aplikacja może zapewniać „bezpieczny przekazywanie dostępu” lub dostęp do danych i operacji w imieniu użytkownika aplikacji. Mechanizmy uwierzytelniania i autoryzacji używane w aplikacji reprezentują implementację platformy OAuth 2.0.
- Podmiot zabezpieczeń
Encja (nazywana też tożsamością), której można przyznać dostęp do zasobu. Interfejsy Google Workspace API obsługują 2 rodzaje podmiotów zabezpieczeń: konta użytkowników i konta usługi. Więcej informacji znajdziesz w sekcji Podmioty zabezpieczeń.
- Typ danych
W kontekście uwierzytelniania i autoryzacji typ danych odnosi się do encji będącej właścicielem danych, do których aplikacja próbuje uzyskać dostęp. Są 3 typy danych:
- Dane domeny publicznej
- Dane dostępne dla każdego, np. niektóre dane z Map Google. Dostęp do tych danych uzyskuje się zazwyczaj za pomocą klucza interfejsu API.
- Dane użytkowników
- Dane należące do określonego użytkownika lub grupy, na przykład 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 z chmury
- Dane należące do projektu Google Cloud. Dostęp do tego typu danych zazwyczaj uzyskuje konto usługi.
- Zgoda użytkownika
Etap autoryzacji, który wymaga od użytkownika aplikacji autoryzowania aplikacji do uzyskiwania dostępu do danych i wykonywania operacji w imieniu użytkownika.
- Typ aplikacji
Typ aplikacji, którą chcesz utworzyć. Podczas tworzenia danych logowania w konsoli Google Cloud pojawi się prośba o wybranie typu aplikacji. Typy aplikacji to: aplikacja internetowa (JavaScript), Android, aplikacja Chrome, iOS, telewizory i urządzenia z ograniczonymi wejściami, aplikacja komputerowa (zwana też „zainstalowaną aplikacją”) i platforma uniwersalna Windows (UWP).
- Konto usługi
Specjalny rodzaj konta Google przeznaczonego do reprezentowania użytkownika niebędącego człowiekiem, który musi się uwierzytelnić i mieć uprawnienia 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żytkowników. Dane są zwykle używane za pomocą interfejsów API Workspace. Konto usługi może jednak uzyskiwać dostęp do danych użytkowników, wdrażając przekazywanie uprawnień w całej domenie. Więcej informacji znajdziesz w opisie kont usługi.
- Przekazywanie uprawnień w całej domenie
Funkcja administracyjna, która umożliwia aplikacji dostęp do danych użytkowników w imieniu użytkowników w organizacji Google Workspace. Przekazywanie dostępu w całej domenie umożliwia wykonywanie zadań administratora związanych z danymi użytkowników. Aby przekazywać uprawnienia w ten sposób, administratorzy Google Workspace używają kont usługi z protokołem OAuth 2.0. Dzięki możliwościom tej funkcji tylko superadministratorzy mogą włączać przekazywanie uprawnień w całej domenie. Więcej informacji znajdziesz w artykule Przekazywanie uprawnień do całej domeny kontu usługi.
Następny krok
Skonfiguruj ekran zgody OAuth w swojej aplikacji, aby użytkownicy mogli sprawdzić i zatwierdzić dostęp aplikacji do ich danych.