Uwierzytelnianie i autoryzacja to mechanizmy służące 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 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ę 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 dane uwierzytelniające i zakresy zatwierdzone przez użytkownika w żądaniu. Żądanie jest wysyłane na serwer 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łą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.
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 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 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ła ona interfejs Chat API lub inny interfejs API Google.
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 otrzymywać i odpowiadać synchronicznie na zdarzenia interakcji.
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 @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 tej usłudze.
- 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 Google Chat API, 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 poniższym diagramie pokazano asynchroniczną sekwencję wiadomości między aplikacją Google Chat a pokojem Google Chat:
- 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ę 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
|
Umożliwia aplikacjom Google Chat wyświetlanie czatów i wysyłanie wiadomości. Ten zakres obsługuje tylko uwierzytelnianie aplikacji za pomocą 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 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świetlać 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 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
|
Tworzenie nowych rozmów i pokoi w Google Chat. Wymaga zatwierdzenia przez administratora. Ten zakres obsługuje tylko uwierzytelnianie aplikacji za pomocą 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.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 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.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.
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
|
importowania 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ś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 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. |
Zakresy w poprzednich tabelach wskazują ich poziom wrażliwości zgodnie z tymi definicjami:
Niewrażliwe – te zakresy zapewniają najmniejszy zakres uprawnień dostępu i wymagają jedynie 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 to 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 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ć 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 ją autoryzować na ekranie zgody OAuth.
- Uwierzytelnianie w aplikacji
Uwierzytelnianie aplikacji pozwala aplikacji Google Chat używać danych logowania do konta usługi oraz uzyskiwać dostęp do danych i wykonywać działania w jej imieniu. Aplikacja 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 Chat. Nie możesz też dodać zakresów autoryzacji OAuth, które obsługują autoryzację aplikacji, do ekranu 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ć 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 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 spaces.list()
z autoryzacją użytkownika zwraca listę pokoi, do których należy ten 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 |
W przypadku uwierzytelniania użytkowników:
|
|||
Szukaj w pokojach | – |
W przypadku uwierzytelniania użytkownika przy użyciu uprawnień administratora:
|
||
Aktualizowanie pokoju |
Uwierzytelnianie użytkownika:
|
|||
Usuwanie pokoju |
Uwierzytelnianie użytkownika:
|
|||
Zakończ importowanie pokoju | – |
Uwierzytelnianie użytkownika:
|
||
Znajdowanie czatu |
Uwierzytelnianie użytkownika:
|
|||
Uczestnicy | ||||
Tworzenie członka |
Uwierzytelnianie użytkownika:
|
|||
Zostań wspierającym |
W przypadku uwierzytelniania użytkowników:
|
|||
Członkowie listy |
W przypadku uwierzytelniania użytkowników:
|
|||
Usuwanie użytkownika |
Uwierzytelnianie użytkownika:
|
|||
Aktualizowanie użytkownika |
Uwierzytelnianie użytkownika:
|
|||
Wiadomości | ||||
Tworzenie wiadomości |
Uwierzytelnianie użytkownika:
|
|||
Otrzymywanie wiadomości |
W przypadku uwierzytelniania użytkowników:
|
|||
Wyświetlanie listy wiadomości | – |
W przypadku uwierzytelniania użytkowników:
|
||
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 niestandardowych emotikonów | – |
Uwierzytelnianie użytkownika:
|
||
Usuwanie niestandardowych emotikonów | – |
Uwierzytelnianie użytkownika:
|
||
Pobierz niestandardowy emotikon | – |
W przypadku uwierzytelniania użytkowników:
|
||
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:
|
|||
Otrzymywanie załącznika do wiadomości | – |
W przypadku uwierzytelniania aplikacji:
|
||
Stany odczytu przez użytkownika | ||||
Pobieranie stanu odczytu pokoju użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Zmienianie stanu odczytu pokoju przez użytkownika | – |
W przypadku uwierzytelniania użytkowników:
|
||
Uzyskiwanie stanu odczytu wątku użytkownika | – |
W przypadku uwierzytelniania użytkowników:
|
||
Ustawienia pokoju użytkownika | ||||
Uzyskiwanie ustawień powiadomień o pokoju użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Aktualizowanie ustawień powiadomień dotyczących pokoju użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Zdarzenia w pokoju | ||||
Otrzymuj wydarzenia dotyczące 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:
|
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 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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.