Uwierzytelnianie i autoryzacja to mechanizmy używane odpowiednio do weryfikacji 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
Na diagramie poniżej widać ogólne etapy 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 Tworzenie aplikacji 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ę za pomocą 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.
Proś o zasoby: aplikacja prosi o dostęp z zakresem określonym podczas konfigurowania uwierzytelniania.
Poproś o zgodę: jeśli aplikacja uwierzytelnia się jako użytkownik, Google wyświetla ekran akceptacji OAuth, aby użytkownik mógł zdecydować, czy zezwolić aplikacji na dostęp do żądanych danych. Uwierzytelnianie za pomocą konta usługi nie wymaga zgody użytkownika.
Wyślij zatwierdzone żądanie dotyczące zasobów: jeśli użytkownik wyrazi zgodę na zakresy uprawnień, aplikacja złączy w żądaniu poświadczenia tożsamości i zakresy zatwierdzone przez użytkownika. Żą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 aplikacja musi uzyskać dostęp do interfejsu Google Chat po upływie czasu 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. W efekcie wysyła nowe żądanie uzyskania tokena dostępu (kroki 3–6).
Kiedy aplikacje czatu wymagają uwierzytelnienia
Aplikacje do czatu mogą wysyłać wiadomości w odpowiedzi na interakcję użytkownika lub asynchronicznie. 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 Google Chat wysyłają żądania REST do interfejsu Chat API, które wymagają 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 odbierać 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 @wymienia aplikację Google Chat.
- Użytkownik wywołuje jedno z komend po ukośniku 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 Google Chat.
- Google Chat przekierowuje wiadomość do aplikacji.
- Aplikacja odbiera wiadomość, przetwarza ją i zwraca odpowiedź do Google Chat.
- Google Chat wyświetla 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 API Google Chat, co wymaga uwierzytelnienia i autoryzacji.
Dzięki wywołaniu interfejsu Chat API aplikacje Google Chat mogą publikować wiadomości w Google Chat lub 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 wiadomość w pokoju czatu, aby podać szczegóły dotyczące niedostępności.
Na diagramie poniżej pokazano asynchroniczną sekwencję wiadomości między aplikacją Google Chat a pokojem Google Chat:
- 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ę Chat za pomocą konta usługi lub danych logowania użytkownika.
- Google Chat wyświetla wiadomość aplikacji w określonym pokoju czatu.
Zakresy interfejsów Google Chat API
Konfigurowanie ekranu zgody OAuth i wybieranie zakresów, aby określić, jakie informacje są wyświetlane użytkownikom i sprawdzającym aplikację, oraz zarejestrować aplikację, aby można ją było opublikować.
Aby określić poziom dostępu przyznanego aplikacji, musisz zidentyfikować 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
|
Umożliwia aplikacjom Google Chat wyświetlanie czatów i wysyłanie wiadomości. Ten zakres obsługuje tylko uwierzytelnianie aplikacji przy użyciu 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ć nowe rozmowy 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
|
tworzyć i wysyłać 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świetlać czaty i pokoje należące do domeny administratora w Google Chat; |
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 użytkowników oraz 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 przy użyciu 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 przy użyciu 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 przy użyciu 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.customemojis
|
Wyświetlanie, tworzenie i usuwanie niestandardowych emotikonów 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.
Zobacz interfejsy API ustawień użytkownika pokoju: getSpaceNotificationSetting i 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
|
importowanie pokoi, wiadomości i subskrypcji do Google Chat; Więcej informacji znajdziesz w artykule Autoryzowanie 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świetlać wiadomości i reakcje 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 przy użyciu 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 w poprzednich tabelach wskazują ich poziom wrażliwości 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 do weryfikacji.
Wrażliwe – te zakresy uprawnień zapewniają aplikacji dostęp do danych Google konkretnego użytkownika po otrzymaniu od niego autoryzacji. Wymaga to dodatkowej weryfikacji aplikacji. Więcej informacji o tym wymaganiu znajdziesz w artykule Kroki dla aplikacji wymagających dostępu do danych wrażliwych.
Ograniczony – 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 Używanie 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.
Typy wymaganego uwierzytelniania
Aplikacje Google Chat mogą uwierzytelniać się i autoryzować za pomocą interfejsu Chat API na 2 sposoby:
- Uwierzytelnianie użytkowników
- Uwierzytelnianie użytkowników pozwala aplikacji do obsługi czatu na dostęp do danych użytkownika i wykonywanie działań w jego imieniu. Zakresy OAuth określają autoryzowane dane i działania. Jeśli aplikacja Google Chat nie została zainstalowana przez administratora ani nie ma przekazanego dostępu w całej domenie, za pierwszym razem, gdy aplikacja wykona działanie w imieniu użytkownika, użytkownik musi autoryzować aplikację Google Chat na ekranie zgody OAuth.
- Uwierzytelnianie w aplikacji
Uwierzytelnianie aplikacji umożliwia aplikacji Google Chat korzystanie z danych logowania do konta usługi oraz dostęp do danych i wykonywanie działań w jej imieniu. Aplikacja Chat używa własnych danych logowania do uzyskiwania dostępu do zasobów i pracy z nimi, więc użytkownicy nie muszą zatwierdzać wywołań interfejsu API aplikacji Chat. Nie możesz też dodać zakresów autoryzacji OAuth, które obsługują autoryzację aplikacji, na ekranie zgody OAuth.
Autentyczność 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ć i 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 do czatu może samodzielnie przyznać ten zakres autoryzacji. Nie jest wymagana autoryzacja administratora ani użytkownika końcowego.https://www.googleapis.com/auth/chat.app.*
(wersja przedpremierowa dla programistów): korzystanie z tych zakresów wymaga jednorazowej zgody administratora. Aby uzyskać zgodę administratora, przygotuj konto usługi aplikacji do obsługi czatu na otrzymanie zgody administratora, tworząc klienta OAuth zgodnego z Google Workspace Marketplace i konfigurując 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
zezwala aplikacjom na tworzenie pokoi Google Chat.
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, w których znajduje się aplikacja Google Chat.
Wywołanie metody spaces.list()
z autoryzacją użytkownika zwraca listę pokoi, do których należy użytkownik. W praktyce podczas wywoływania interfejsu Chat API możesz używać obu typów uwierzytelniania w zależności od projektu 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ługa uwierzytelniania użytkowników | Obsługiwane uwierzytelnianie aplikacji | Obsługiwane zakresy autoryzacji | |
---|---|---|---|---|
Pokoje | ||||
Tworzenie pokoju |
Uwierzytelnianie użytkownika:
|
|||
Konfigurowanie pokoju | – |
Uwierzytelnianie użytkownika:
|
||
Uzyskaj miejsce |
Uwierzytelnianie użytkownika:
|
|||
Lista pokoi |
Uwierzytelnianie użytkownika:
|
|||
Obszary wyszukiwania | – |
W przypadku uwierzytelniania użytkownika przy użyciu uprawnień administratora:
|
||
Aktualizowanie pokoju |
Uwierzytelnianie użytkownika:
|
|||
Usuwanie pokoju |
Uwierzytelnianie użytkownika:
|
|||
Zakończ proces importowania pokoju | – |
Uwierzytelnianie użytkownika:
|
||
Znajdowanie czatu |
Uwierzytelnianie użytkownika:
|
|||
Uczestnicy | ||||
Tworzenie członka |
Uwierzytelnianie użytkownika:
|
|||
Zostań wspierającym |
Uwierzytelnianie użytkownika:
|
|||
Członkowie listy |
Uwierzytelnianie użytkownika:
|
|||
Usuwanie użytkownika |
Uwierzytelnianie użytkownika:
|
|||
Aktualizowanie użytkownika |
Uwierzytelnianie użytkownika:
|
|||
Wiadomości | ||||
Tworzenie wiadomości |
Uwierzytelnianie użytkownika:
|
|||
Otrzymywanie wiadomości |
Uwierzytelnianie użytkownika:
|
|||
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 | – |
Uwierzytelnianie użytkownika:
|
||
niestandardowe emotikony, | ||||
Tworzenie niestandardowego emotikonu | – |
Uwierzytelnianie użytkownika:
|
||
Usuwanie niestandardowego emotikonu | – |
Uwierzytelnianie użytkownika:
|
||
Uzyskiwanie niestandardowych emotikonów | – |
Uwierzytelnianie użytkownika:
|
||
Wyświetlanie niestandardowych emotikonów | – |
Uwierzytelnianie użytkownika:
|
||
Media i załączniki | ||||
Przesyłanie multimediów jako załącznika pliku | – |
Uwierzytelnianie użytkownika:
|
||
Pobieranie multimediów |
Uwierzytelnianie użytkownika:
|
|||
Pobieranie załącznika wiadomości | – |
W przypadku uwierzytelniania aplikacji:
|
||
Stany odczytu przez użytkownika | ||||
Pobieranie stanu odczytu pokoju przez użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Zmienianie stanu odczytu pokoju przez użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Pobieranie stanu przeczytania wątku przez użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Ustawienia pokoju użytkownika | ||||
Uzyskiwanie informacji o ustawieniach powiadomień o pokoju użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Zmienianie ustawień powiadomień o pokoju użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
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żytkownika musisz użyć zakresu dla każdego
typu zdarzenia uwzględnionego w żądaniu:
|
W przypadku zdarzeń 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 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Odbieranie wiadomości z: |
|
|||||||||||||||
Odpowiadanie na wiadomości: |
|
|||||||||||||||
Wysyłanie nowych 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.