Uwierzytelnianie i autoryzacja to mechanizmy służące do weryfikowania tożsamości i dostępu do zasobów. Ten dokument wyjaśnia, jak działa uwierzytelnianie i autoryzacja w aplikacjach Google Chat i żądaniach do interfejsu Chat API.
Omówienie procesu
Poniższy diagram przedstawia ogólne kroki uwierzytelniania i autoryzacji w Google Chat:
Skonfiguruj projekt Google Cloud, włącz interfejs Chat API i skonfiguruj aplikację Google Chat: w trakcie programowania tworzysz projekt Google Cloud. W projekcie Google Cloud włączysz interfejs Chat API, skonfigurujesz aplikację Google Chat i ustawisz uwierzytelnianie. Więcej informacji znajdziesz w artykułach Programowanie w Google Workspace i Tworzenie aplikacji Google Chat.
Wywołaj interfejs Chat API: gdy aplikacja wywołuje interfejs Chat API, wysyła do niego dane uwierzytelniające. Jeśli aplikacja uwierzytelnia się przy użyciu konta usługi, dane uwierzytelniające są wysyłane jako część kodu aplikacji. Jeśli Twoja aplikacja wymaga wywołania interfejsu Chat API przy użyciu uwierzytelniania użytkownika, który nie został jeszcze przyznany, poprosi go o zalogowanie się.
Wysyłanie żądań zasobów: aplikacja prosi o dostęp z wykorzystaniem zakresów określonych podczas konfigurowania uwierzytelniania.
Poproś o zgodę: jeśli Twoja aplikacja uwierzytelnia się jako użytkownik, Google wyświetla ekran zgody OAuth, aby użytkownik mógł zdecydować, czy przyznać jej dostęp do żądanych danych. Uwierzytelnianie za pomocą konta usługi nie wymaga zgody użytkownika.
Wyślij zatwierdzoną prośbę o dostęp do zasobów: jeśli użytkownik wyrazi zgodę na zakresy autoryzacji, aplikacja połączy dane logowania i zatwierdzone przez użytkownika zakresy w żądanie. Żą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. Jeśli zwrócona lista zakresów jest bardziej restrykcyjna niż żądane zakresy, aplikacja wyłączy wszystkie funkcje ograniczone przez token.
Dostęp do żądanych zasobów: aplikacja używa tokena dostępu Google, aby wywoływać interfejs Chat API i uzyskiwać dostęp do zasobów tego interfejsu.
Uzyskaj token odświeżania (opcjonalnie): jeśli aplikacja musi uzyskiwać dostęp do interfejsu Google Chat API po upłynięciu pojedynczego tokena dostępu, może otrzymać token odświeżania. Więcej informacji znajdziesz w artykule o uzyskiwaniu dostępu do interfejsów API Google za pomocą OAuth 2.0.
Poproś o więcej zasobów: jeśli aplikacja potrzebuje większego dostępu, prosi użytkownika o przyznanie nowych zakresów, co powoduje przesłanie nowej prośby o token dostępu (kroki 3–6).
Gdy aplikacje do obsługi czatu wymagają uwierzytelnienia
Aplikacje do obsługi czatu mogą wysyłać wiadomości w odpowiedzi na interakcję użytkownika lub niesynchronicznie. Mogą też wykonywać w imieniu użytkownika zadania takie jak tworzenie pokoju czatu czy pobieranie listy osób w pokoju czatu.
Aplikacje do obsługi czatu nie wymagają uwierzytelniania, aby odpowiedzieć na interakcję użytkownika, chyba że podczas przetwarzania odpowiedzi wywoła ona interfejs Chat API lub inny interfejs API Google.
Aby wysyłać wiadomości asynchroniczne lub wykonywać zadania w imieniu użytkownika, aplikacje do obsługi czatu wysyłają żądania REST do interfejsu Chat API, co wymaga uwierzytelnienia i autoryzacji.
odpowiedzi na interakcje użytkowników nie wymagają uwierzytelniania;
Aplikacje Google Chat nie muszą uwierzytelniać się jako użytkownik lub aplikacja Google Chat, aby otrzymywać zdarzenia interakcji i na nie odpowiadać synchronicznie.
Aplikacje Google Chat odbierają zdarzenia interakcji za każdym razem, gdy użytkownik wchodzi w interakcję z aplikacją lub wywołuje aplikację Google Chat, w tym:
- Użytkownik wysyła wiadomość do aplikacji Google Chat.
- Użytkownik dodaje @wzmiankę o aplikacji Google Chat.
- Użytkownik wywołuje jedno z poleceń ukośnika w aplikacji Google Chat.
Poniższy diagram przedstawia sekwencję żądania i odpowiedzi między użytkownikiem Google Chat a aplikacją Google Chat:
- użytkownik wysyła wiadomość do aplikacji Google Chat w tej usłudze.
- Google Chat przekaże wiadomość do aplikacji.
- Aplikacja odbiera wiadomość, przetwarza ją i zwraca odpowiedź do Google Chat.
- Google Chat renderuje odpowiedź dla użytkownika lub w pokoju.
Ta sekwencja powtarza się w przypadku każdego zdarzenia interakcji z aplikacją Google Chat.
Wiadomości asynchroniczne wymagają uwierzytelniania
Komunikaty asynchroniczne występują, gdy aplikacja do obsługi czatu wysyła żądanie do interfejsu Chat API, który wymaga uwierzytelnienia i autoryzacji.
Po wywołaniu interfejsu Chat API aplikacje Google Chat mogą publikować wiadomości w Google Chat, wykonywać zadania i uzyskiwać dostęp do danych w imieniu użytkownika. Na przykład po wykryciu przerwy w działaniu serwera aplikacja do obsługi czatu może wywołać interfejs Chat API w celu:
- Utwórz pokój czatu przeznaczony do badania i naprawiania przerwy w działaniu usługi.
- Dodaj osoby do pokoju czatu.
- Opublikuj w pokoju czatu wiadomość, aby podać szczegółowe informacje o tej przerwie.
Ten diagram przedstawia asynchroniczną sekwencję wiadomości między aplikacją Google Chat a pokojem czatu:
- Aplikacja do obsługi czatu tworzy wiadomość, wywołując interfejs Chat API za pomocą metody
spaces.messages.create
i uwzględnia dane logowania użytkownika w żądaniu HTTP. - Google Chat uwierzytelnia aplikację Google Chat przy użyciu konta usługi lub danych logowania użytkownika.
- Google Chat renderuje wiadomość aplikacji w określonym pokoju czatu.
Zakresy interfejsu Chat API
Skonfiguruj ekran zgody OAuth i wybierz zakresy, aby określić, jakie informacje mają być wyświetlane użytkownikom i weryfikatorom aplikacji, oraz zarejestruj aplikację, aby móc ją później opublikować.
Aby określić poziom dostępu przyznany aplikacji, musisz wskazać i zadeklarować zakresy autoryzacji. Zakres autoryzacji to ciąg znaków identyfikatora URI OAuth 2.0 zawierający nazwę aplikacji Google Workspace, rodzaj danych, do których uzyskuje ona dostęp, oraz poziom dostępu.
Zakresy niewrażliwe
Kod zakresu | Opis |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Zakres Pozwala aplikacjom Google Chat na wyświetlanie czatów i wysyłanie wiadomości. Daje dostęp do wszystkich funkcji dostępnych dla aplikacji Google Chat. |
Zakresy wrażliwe
Kod zakresu | Opis |
---|---|
https://www.googleapis.com/auth/chat.spaces
|
Tworzenie rozmów i pokoi oraz wyświetlanie i edytowanie metadanych (w tym ustawień historii i ustawień dostępu) w Google Chat. |
https://www.googleapis.com/auth/chat.spaces.create
|
tworzyć nowych rozmów w Google Chat, |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Wyświetlanie czatu i pokoi w Google Chat. |
https://www.googleapis.com/auth/chat.memberships
|
Wyświetlanie, dodawanie, aktualizowanie i usuwanie uczestników rozmów w Google Chat. |
https://www.googleapis.com/auth/chat.memberships.app
|
dodawać siebie do rozmów w Google Chat i usuwać je z nich; |
https://www.googleapis.com/auth/chat.memberships.readonly
|
Wyświetlanie uczestników rozmów w Google Chat. |
https://www.googleapis.com/auth/chat.messages.create
|
Tworzenie i wysyłanie wiadomości w Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Wyświetlanie, dodawanie i usuwanie reakcji na wiadomości w Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Dodawanie reakcji na wiadomość w Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Wyświetlanie reakcji na wiadomość w Google Chat. |
https://www.googleapis.com/auth/chat.users.readstate
|
Wyświetlanie i modyfikowanie czasu ostatniego odczytu rozmów w Google Chat. |
https://www.googleapis.com/auth/chat.users.readstate.readonly
|
Wyświetlanie czasu ostatniego odczytu rozmów w Google Chat. |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
Wyświetlanie w Google Chat czatu i pokoi należących do domeny administratora. |
https://www.googleapis.com/auth/chat.admin.spaces
|
Wyświetlanie i edytowanie w Google Chat czatów i pokoi należących do domeny administratora. |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
Wyświetlanie użytkowników i menedżerów w rozmowach należących do domeny administratora w Google Chat. |
https://www.googleapis.com/auth/chat.admin.memberships
|
Wyświetlanie, dodawanie, aktualizowanie i usuwanie członków i menedżerów w rozmowach należących do domeny administratora w Google Chat. |
Zakresy z ograniczeniami
Kod zakresu | Opis |
---|---|
https://www.googleapis.com/auth/chat.delete
|
usuwać rozmowy i pokoje oraz odbierać dostęp do powiązanych plików w Google Chat. |
https://www.googleapis.com/auth/chat.import
|
Importuj pokoje, wiadomości i subskrypcje do Google Chat. Więcej informacji znajdziesz w artykule o autoryzowaniu aplikacji Google Chat do importowania danych. |
https://www.googleapis.com/auth/chat.messages
|
Wyświetlanie, tworzenie, wysyłanie, aktualizowanie i usuwanie wiadomości oraz dodawanie, wyświetlanie i usuwanie reakcji na wiadomości. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Wyświetlanie wiadomości i reakcji w Google Chat. |
https://www.googleapis.com/auth/chat.admin.delete
|
usuwać rozmowy i pokoje należące do domeny administratora oraz odbierać dostęp do powiązanych plików w Google Chat. |
Zakresy w poprzednich tabelach wskazują ich czułość zgodnie z tymi definicjami:
Niewrażliwe – te zakresy zapewniają najmniejszy zakres uprawnień dostępu i wymagają jedynie podstawowej weryfikacji aplikacji. Informacje o tym wymaganiu znajdziesz w artykule Etapy przygotowania do weryfikacji.
Poufne – te zakresy zapewniają aplikacji dostęp do danych Google konkretnego użytkownika po jego autoryzacji. Wymaga ona dodatkowej weryfikacji aplikacji. Informacje o tym wymaganiu znajdziesz w artykule Instrukcje dotyczące aplikacji żądających zakresów wrażliwych.
Z ograniczeniami – te zakresy zapewniają szeroki dostęp do danych użytkowników Google i wymagają przejścia procesu weryfikacji zakresu z ograniczeniami. Informacje o tym wymaganiu znajdziesz w artykułach Usługi interfejsów API Google: zasady dotyczące danych użytkownika i Dodatkowe wymagania dotyczące określonych zakresów interfejsu API. Zobacz też instrukcje dotyczące aplikacji żądających ograniczonych zakresów.
Jeśli Twoja aplikacja wymaga dostępu do innych interfejsów API Google, możesz też dodać te zakresy. Więcej informacji o zakresach interfejsów API Google znajdziesz w artykule Korzystanie z protokołu OAuth 2.0 na potrzeby dostępu do interfejsów API Google.
Więcej informacji o zakresach interfejsów API Google Workspace znajdziesz w artykule Konfigurowanie ekranu zgody OAuth i wybieranie zakresów.
Rodzaje wymaganego uwierzytelniania
Aplikacje Google Chat mogą uwierzytelniać i autoryzować przy użyciu interfejsu Chat API 2 sposoby: dane logowania użytkownika lub konta usługi.
Dzięki autoryzacji danych logowania użytkownika aplikacja Google Chat ma dostęp do danych użytkownika i może wykonywać działania w jego imieniu. Zakresy protokołu OAuth określają autoryzowane dane i działania.
Dzięki autoryzacji aplikacji aplikacja do obsługi czatu uzyskuje dostęp do interfejsu API jako aplikacja za pomocą danych logowania konta usługi. Autoryzacja aplikacji zawsze używa zakresu autoryzacji chat.bot
.
Wybierając typ danych logowania do użycia w konkretnym żądaniu do interfejsu API, pamiętaj, że niektóre metody API obsługują tylko określony typ danych logowania. Jeśli metoda interfejsu API obsługuje oba dane logowania, typ danych logowania użyty w wywołaniu wpływa na zwracany wynik:
- W przypadku autoryzacji aplikacji metody zwracają tylko zasoby, do których aplikacja ma dostęp.
- W przypadku autoryzacji użytkownika metody zwracają tylko zasoby, do których użytkownik ma dostęp w interfejsie Google Chat.
Na przykład wywołanie metody ListSpaces
z autoryzacją aplikacji zwraca listę pokoi, do których należy aplikacja. Wywołanie ListSpaces
z autoryzacją użytkownika zwraca listę pokoi, do których należy ten użytkownik. W praktyce aplikacja może używać obu typów autoryzacji podczas wywoływania interfejsu Chat API w zależności od funkcji, których potrzebujesz.
Asynchroniczne wywołania interfejsu Chat API
W tabeli poniżej znajdziesz metody interfejsu Chat API oraz ich obsługiwane zakresy autoryzacji:
Metoda | obsługiwane uwierzytelnianie użytkowników, | Obsługa uwierzytelniania aplikacji | Obsługiwane zakresy autoryzacji | |
---|---|---|---|---|
Pokoje | ||||
Tworzenie pokoju | — |
W przypadku uwierzytelniania użytkowników:
|
||
Konfigurowanie pokoju | — |
W przypadku uwierzytelniania użytkowników:
|
||
Zrób pokój |
W przypadku uwierzytelniania użytkowników:
|
|||
Pokoje listy |
W przypadku uwierzytelniania użytkowników:
|
|||
Szukaj w pokojach |
W przypadku uwierzytelniania użytkowników za pomocą uprawnień administratora:
|
|||
Aktualizowanie pokoju | — |
W przypadku uwierzytelniania użytkowników:
|
||
Usuwanie pokoju | — |
W przypadku uwierzytelniania użytkowników:
|
||
Zakończenie procesu importowania pokoju | — |
W przypadku uwierzytelniania użytkowników:
|
||
Znajdowanie czatu |
W przypadku uwierzytelniania użytkowników:
|
|||
Członkowie | ||||
Tworzenie członka grupy | — |
W przypadku uwierzytelniania użytkowników:
|
||
Zasubskrybuj |
W przypadku uwierzytelniania użytkowników:
|
|||
Członkowie grupy |
W przypadku uwierzytelniania użytkowników:
|
|||
Usuwanie użytkownika | — |
W przypadku uwierzytelniania użytkowników:
|
||
Aktualizowanie członka | — |
W przypadku uwierzytelniania użytkowników:
|
||
Wiadomości | ||||
Tworzenie wiadomości |
W przypadku uwierzytelniania użytkowników:
|
|||
Odbierz wiadomość |
W przypadku uwierzytelniania użytkowników:
|
|||
Wyświetlanie listy wiadomości | — |
W przypadku uwierzytelniania użytkowników:
|
||
Aktualizowanie wiadomości |
W przypadku uwierzytelniania użytkowników:
|
|||
Usuwanie wiadomości |
W przypadku uwierzytelniania użytkowników:
|
|||
Reakcje | ||||
Tworzenie reakcji | — |
W przypadku uwierzytelniania użytkowników:
|
||
Lista reakcji | — |
W przypadku uwierzytelniania użytkowników:
|
||
Usuwanie reakcji | — |
W przypadku uwierzytelniania użytkowników:
|
||
Multimedia i załączniki | ||||
Przesyłanie multimediów jako załącznika | — |
W przypadku uwierzytelniania użytkowników:
|
||
Pobieranie multimediów |
W przypadku uwierzytelniania użytkowników:
|
|||
Otrzymywanie załącznika do wiadomości | — |
Korzystając z uwierzytelniania aplikacji:
|
||
Stany odczytu użytkownika | ||||
Pobieranie stanu odczytu pokoju użytkownika | — |
W przypadku uwierzytelniania użytkowników:
|
||
Aktualizowanie stanu odczytu pokoju użytkownika | — |
W przypadku uwierzytelniania użytkowników:
|
||
Uzyskiwanie stanu odczytu wątku użytkownika | — |
W przypadku uwierzytelniania użytkowników:
|
||
Wydarzenia na temat pokoju | ||||
Pobierz wydarzenia dotyczące pokoju | — |
W przypadku uwierzytelniania użytkowników:
|
||
Wyświetl listę zdarzeń dotyczących pokoju | — |
W przypadku uwierzytelniania użytkowników:
|
Zdarzenia interakcji z aplikacją Google Chat
W tabeli poniżej znajdziesz typowe sposoby korzystania przez użytkowników z aplikacji Google Chat oraz informacje o tym, czy uwierzytelnianie jest wymagane czy obsługiwane:
Scenariusz | Uwierzytelnianie nie jest wymagane | obsługiwane uwierzytelnianie użytkowników, | Obsługa uwierzytelniania aplikacji | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Otrzymuj wiadomości z: |
|
|||||||||||||||
Odpowiadanie na wiadomości: |
|
|||||||||||||||
Wysyłaj nowe wiadomości: |
|
Powiązane artykuły
- Omówienie uwierzytelniania i autoryzacji w Google Workspace znajdziesz w artykule Informacje o uwierzytelnianiu i autoryzowaniu.
- Omówienie uwierzytelniania i autoryzacji w Google Cloud znajdziesz w artykule Omówienie uwierzytelniania.
- Więcej informacji o kontach usługi znajdziesz w artykule Konta usługi.
- Więcej informacji o tym, jak interfejsy API Google wykorzystują OAuth 2.0, znajdziesz w artykule o używaniu OAuth 2.0 do uzyskiwania dostępu do interfejsów API Google.
- Skonfiguruj uwierzytelnianie i autoryzację za pomocą danych logowania użytkownika lub konta usługi.