Uwierzytelnianie i autoryzacja to mechanizmy służące do weryfikowania tożsamości i dostępu do zasobów. W tym dokumencie opisujemy, jak działa uwierzytelnianie i autoryzacja w przypadku aplikacji do obsługi czatu i żądań do interfejsu API Google Chat.
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ę Chat: podczas tworzenia musisz utworzyć projekt Google Cloud. W projekcie Google Cloud włącz interfejs Chat API, skonfiguruj aplikację Google Chat i skonfiguruj uwierzytelnianie. Więcej informacji znajdziesz w artykułach Programowanie w Google Workspace i Tworzenie aplikacji Google Chat.
Wywoływanie interfejsu 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 API czatu przy użyciu uwierzytelnienia użytkownika, które nie zostało jeszcze przyznane, wyświetla użytkownikowi prośbę o zalogowanie.
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 na serwer autoryzacji Google w celu uzyskania tokena dostępu.
Google zwraca token dostępu: zawiera on listę przyznanych uprawnień. Jeśli zwrócona lista zakresów jest bardziej restrykcyjna niż żądane zakresy, aplikacja wyłącza wszystkie funkcje ograniczone przez token.
Dostęp do żądanych zasobów: aplikacja używa tokena dostępu od Google do wywołania interfejsu Chat API i dostępu do jego zasobów.
Uzyskiwanie tokena odświeżania (opcjonalnie): jeśli Twoja aplikacja musi uzyskać dostęp do interfejsu Google Chat poza czasem ważności pojedynczego tokena dostępu, może uzyskać token odświeżania. Więcej informacji znajdziesz w artykule Uzyskiwanie dostępu do interfejsów API Google za pomocą protokołu OAuth 2.0.
Poproś o więcej zasobów: jeśli aplikacja potrzebuje więcej uprawnień, prosi użytkownika o przyznanie nowych zakresów dostępu, co powoduje wysł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ć czynności w imieniu użytkownika, takie jak tworzenie pokoju czatu czy uzyskiwanie 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łują interfejs Chat API lub inny interfejs Google API.
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ą się uwierzytelniać jako użytkownik ani aplikacja do obsługi czatu, aby otrzymywać i odpowiadać synchronicznie na zdarzenia interakcji.
Aplikacje Google Chat otrzymują zdarzenia interakcji za każdym razem, gdy użytkownik wejdzie w interakcję z aplikacją lub ją wywoła, 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.
- 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.
Komunikaty asynchroniczne wymagają uwierzytelnienia
Komunikaty asynchroniczne pojawiają się, gdy aplikacja Google Chat wysyła żądanie do interfejsu Google Chat API, co 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 awarii serwera aplikacja Google Chat może wywołać interfejs API Google Chat, aby:
- Utwórz pokój Google Chat poświęcony badaniu i rozwiązywaniu problemu.
- dodawać osoby do pokoju Google Chat;
- 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 Google Chat tworzy wiadomość, wywołując interfejs Chat API za pomocą metody
spaces.messages.create
i uwzględniając w żądaniu HTTP dane logowania użytkownika. - Google Chat uwierzytelnia aplikację Google Chat za pomocą konta usługi lub danych logowania użytkownika.
- Google Chat renderuje wiadomość aplikacji do określonego pokoju czatu.
Zakresy interfejsów Google 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 URI OAuth 2.0 zawierający nazwę aplikacji Google Workspace, rodzaj danych, do których ma ona dostęp, oraz poziom dostępu.
Zakresy niewrażliwe
Kod zakresu | Opis |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Pozwala aplikacjom Google Chat na wyświetlanie czatów i wysyłanie wiadomości. Ten zakres obsługuje tylko uwierzytelnianie aplikacji w przypadku kont usługi. Nie możesz uwierzytelnić się za pomocą danych logowania użytkownika ani delegacji na całą domenę przy użyciu tego zakresu. |
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
|
Dodawanie siebie do rozmów w Google Chat i usuwanie się 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 do wiadomości 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świetlać i edytować czaty i pokoje należące do domeny administratora w Google Chat; |
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. |
https://www.googleapis.com/auth/chat.app.spaces
|
Tworzenie rozmów i pokoi oraz wyświetlanie i aktualizowanie metadanych (w tym ustawień historii i ustawień dostępu) w Google Chat. Wymaga zatwierdzenia przez administratora. Ten zakres obsługuje tylko uwierzytelnianie aplikacji za pomocą kont usługi. Nie możesz uwierzytelnić się za pomocą danych logowania użytkownika ani delegacji na całą domenę przy użyciu tego zakresu. |
https://www.googleapis.com/auth/chat.app.spaces.create
|
tworzyć nowe rozmowy i pokoje w Google Chat. Wymaga zatwierdzenia przez administratora. Ten zakres obsługuje tylko uwierzytelnianie aplikacji w przypadku kont usługi. Nie możesz uwierzytelnić się za pomocą danych logowania użytkownika ani delegacji na całą domenę przy użyciu tego zakresu. |
https://www.googleapis.com/auth/chat.app.memberships
|
Wyświetlanie, dodawanie, aktualizowanie i usuwanie uczestników rozmów i pokoi w Google Chat. Wymaga zatwierdzenia przez administratora. Ten zakres obsługuje tylko uwierzytelnianie aplikacji w przypadku kont usługi. Przy użyciu tego zakresu nie możesz uwierzytelniać się za pomocą danych logowania użytkownika ani z przekazywaniem dostępu w całej domenie. |
https://www.googleapis.com/auth/chat.customemojis
|
Wyświetlaj, twórz i usuwaj niestandardowe emotikony w Google Chat. |
https://www.googleapis.com/auth/chat.customemojis.readonly
|
Wyświetlanie niestandardowych emotikonów w Google Chat. |
https://www.googleapis.com/auth/chat.users.spacesettings
|
Wyświetlanie i aktualizowanie ustawień pokoju użytkownika Google Chat.
Zapoznaj się z interfejsami API ustawień użytkowników pokoju: getSpaceNotificationSetting, updateSpaceNotificationSetting |
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 z nimi plików w Google Chat; |
https://www.googleapis.com/auth/chat.app.delete
|
usuwać rozmowy i pokoje oraz odbierać dostęp do powiązanych plików w Google Chat; Wymaga zatwierdzenia przez administratora. Ten zakres obsługuje tylko uwierzytelnianie aplikacji w przypadku kont usługi. Przy użyciu tego zakresu nie możesz uwierzytelniać się za pomocą danych logowania użytkownika ani z przekazywaniem dostępu w całej domenie. |
Zakresy w poprzednich tabelach wskazują ich czułość zgodnie z tymi definicjami:
Niewrażliwe – te zakresy zapewniają najmniejsze uprawnienia dostępu i wymagają tylko podstawowej weryfikacji aplikacji. Więcej informacji o tym wymaganiu znajdziesz w artykule Przygotowanie się do weryfikacji.
Wrażliwe – te zakresy uprawnień zapewniają aplikacji dostęp do danych Google konkretnego użytkownika po otrzymaniu od niego autoryzacji. Wymaga ona dodatkowej weryfikacji aplikacji. Więcej informacji o tym wymaganiu znajdziesz w artykule Kroki dla aplikacji wymagających dostępu do danych 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. Więcej informacji o tym wymaganiu znajdziesz w zasadach dotyczących danych użytkownika w usługach interfejsu API Google i dodatkowych wymaganiach dotyczących konkretnych zakresów interfejsu API. Zobacz też instrukcje dotyczące aplikacji wymagających dostępu do 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:
- Uwierzytelnianie użytkowników
- Uwierzytelnianie użytkowników umożliwia aplikacji Google Chat dostęp do danych użytkownika i wykonywanie działań w jego imieniu. Zakresy protokołu OAuth określają autoryzowane dane i działania. Jeśli aplikacja Google Chat nie została zainstalowana przez administratora lub nie otrzymała przekazywania dostępu w całej domenie, za pierwszym razem, gdy aplikacja Google Chat wykona działanie w imieniu użytkownika, musi on autoryzować aplikację Google Chat za pomocą ekranu zgody OAuth.
- Uwierzytelnianie w aplikacji
Uwierzytelnianie aplikacji umożliwia aplikacji Google Chat używanie danych logowania do konta usługi, uzyskiwanie dostępu do danych i wykonywanie działań w imieniu własnym. Aplikacja Google Chat używa własnych danych logowania do uzyskiwania dostępu do zasobów i pracy z nimi, dlatego użytkownicy nie muszą zatwierdzać wywołań interfejsu API aplikacji Google Chat ani dodawać do ekranu zgody OAuth zakresów autoryzacji OAuth obsługujących autoryzację aplikacji.
Uwierzytelnianie aplikacji obsługują 2 typy zakresów autoryzacji OAuth:
https://www.googleapis.com/auth/chat.bot
: Twoja aplikacja Google Chat może wywoływać metody interfejsu Google Chat API, które obsługują ten zakres autoryzacji, aby tworzyć, aktualizować, pobierać, wyświetlać lub usuwać zasoby, do których ma dostęp, takie jak wiadomości w pokojach, do których użytkownicy dodają Twoją aplikację Google Chat. Aplikacja Google Chat może samodzielnie przyznać ten zakres autoryzacji. Nie jest wymagana autoryzacja przez administratora ani użytkownika.https://www.googleapis.com/auth/chat.app.*
(Wersja przedpremierowa dla programistów): używanie tych zakresów wymaga jednorazowego zatwierdzenia przez administratora. Aby uzyskać zatwierdzenie administratora, przygotuj konto usługi aplikacji Google Chat do zatwierdzenia przez administratora. W tym celu utwórz klienta OAuth zgodnego z Google Workspace Marketplace i skonfiguruj aplikację w pakiecie SDK Google Workspace Marketplace. Te zakresy umożliwiają aplikacji Google Chat wywoływanie określonych metod interfejsu Google Chat API. Na przykładchat.app.spaces.create
umożliwia aplikacjom tworzenie pokoi czatu.
Jeśli metoda obsługuje uwierzytelnianie użytkownika lub aplikacji, interfejs Chat API zwraca różne wyniki w zależności od używanego typu uwierzytelniania:
- W przypadku uwierzytelniania aplikacji metody zwracają tylko zasoby, do których ma dostęp aplikacja Google Chat.
- W przypadku uwierzytelniania użytkownika metody zwracają tylko zasoby, do których użytkownik ma dostęp.
Na przykład wywołanie metody spaces.list()
z autoryzacją aplikacji zwraca listę pokoi, do których należy aplikacja Google Chat.
Wywołanie metody spaces.list()
z autoryzacją użytkownika zwraca listę pokoi, do których należy użytkownik. W praktyce możesz używać obu typów uwierzytelniania przy wywoływaniu interfejsu Chat API w zależności od konstrukcji i funkcji aplikacji Google Chat.
W przypadku asynchronicznych wywołań interfejsu Chat API
W tabeli poniżej znajdziesz metody interfejsu Chat API i ich obsługiwane zakresy autoryzacji:
Metoda | obsługiwane uwierzytelnianie użytkowników, | Obsługa uwierzytelniania aplikacji | Obsługiwane zakresy autoryzacji | |
---|---|---|---|---|
Pokoje | ||||
Tworzenie pokoju |
Uwierzytelnianie użytkownika:
|
|||
Konfigurowanie pokoju | – |
Uwierzytelnianie użytkownika:
|
||
Zrób pokój |
W przypadku uwierzytelniania użytkowników:
|
|||
Lista pokoi |
Uwierzytelnianie użytkownika:
|
|||
Szukaj w pokojach | – |
W przypadku uwierzytelniania użytkowników przy użyciu uprawnień administratora:
|
||
Aktualizowanie pokoju |
W przypadku uwierzytelniania użytkowników:
|
|||
Usuwanie pokoju |
Uwierzytelnianie użytkownika:
|
|||
Zakończenie procesu importowania pokoju | – |
W przypadku uwierzytelniania użytkowników:
|
||
Znajdowanie czatu |
Uwierzytelnianie użytkownika:
|
|||
Uczestnicy | ||||
Tworzenie członka grupy |
Uwierzytelnianie użytkownika:
|
|||
Zostań wspierającym |
W przypadku uwierzytelniania użytkowników:
|
|||
Członkowie grupy |
Uwierzytelnianie użytkownika:
|
|||
Usuwanie użytkownika |
W przypadku uwierzytelniania użytkowników:
|
|||
Aktualizowanie użytkownika |
Uwierzytelnianie użytkownika:
|
|||
Wiadomości | ||||
Tworzenie wiadomości |
Uwierzytelnianie użytkownika:
|
|||
Odbierz wiadomość |
W przypadku uwierzytelniania użytkowników:
|
|||
Wyświetlanie wiadomości | – |
Uwierzytelnianie użytkownika:
|
||
Aktualizowanie wiadomości |
Uwierzytelnianie użytkownika:
|
|||
Usuwanie wiadomości |
Uwierzytelnianie użytkownika:
|
|||
Reakcje | ||||
Tworzenie reakcji | – |
Uwierzytelnianie użytkownika:
|
||
Lista reakcji | – |
Uwierzytelnianie użytkownika:
|
||
Usuwanie reakcji | – |
W przypadku uwierzytelniania użytkowników:
|
||
niestandardowe emotikony, | ||||
Tworzenie niestandardowego emotikonu | – |
Uwierzytelnianie użytkownika:
|
||
Usuwanie niestandardowych emotikonów | – |
Uwierzytelnianie użytkownika:
|
||
Uzyskiwanie niestandardowego emotikonu | – |
Uwierzytelnianie użytkownika:
|
||
Lista niestandardowych emotikonów | – |
Uwierzytelnianie użytkownika:
|
||
Media i załączniki | ||||
Przesyłanie multimediów jako załącznika pliku | – |
W przypadku uwierzytelniania użytkowników:
|
||
Pobieranie multimediów |
Uwierzytelnianie użytkownika:
|
|||
Pobieranie załącznika wiadomości | – |
Korzystając z uwierzytelniania aplikacji:
|
||
Stany odczytu przez użytkownika | ||||
Pobieranie stanu odczytu pokoju użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Aktualizowanie stanu odczytu pokoju użytkownika | – |
W przypadku uwierzytelniania użytkowników:
|
||
Pobieranie stanu przeczytania wątku przez użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Ustawienia przestrzeni użytkownika | ||||
Uzyskiwanie ustawień powiadomień o pokoju użytkownika | – |
W przypadku uwierzytelniania użytkowników:
|
||
Aktualizowanie ustawień powiadomień dotyczących pokoju użytkownika | – |
W przypadku uwierzytelniania użytkowników:
|
||
Zdarzenia w pokoju | ||||
Pobieranie zdarzeń w pokoju | – |
W przypadku uwierzytelniania użytkownika musisz użyć zakresu na podstawie typu zdarzenia:
|
||
Lista zdarzeń w pokoju | – |
W przypadku uwierzytelniania użytkowników musisz użyć zakresu dla każdego
typu zdarzenia uwzględnionego w żądaniu:
|
Zdarzenia interakcji z aplikacją Google Chat
W tej tabeli znajdziesz listę typowych sposobów interakcji użytkowników z aplikacjami Google Chat oraz informacje o tym, czy uwierzytelnianie jest wymagane lub obsługiwane:
Scenariusz | Bez uwierzytelniania | Obsługa uwierzytelniania użytkowników | Obsługiwane uwierzytelnianie aplikacji | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Otrzymuj wiadomości z: |
|
|||||||||||||||
Odpowiadanie na wiadomości: |
|
|||||||||||||||
Wysyłaj nowe wiadomości: |
|
Powiązane artykuły
- Informacje o uwierzytelnianiu i autoryzacji w Google Workspace znajdziesz w artykule Informacje o uwierzytelnianiu i autoryzacji.
- Informacje o uwierzytelnianiu i autoryzowaniu 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 używaniu protokołu OAuth 2.0 przez interfejsy API Google znajdziesz w artykule Używanie protokołu OAuth 2.0 na potrzeby dostępu do interfejsów API Google.
- Skonfiguruj uwierzytelnianie i autoryzację za pomocą danych logowania użytkownika lub konta usługi.