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 kroki uwierzytelniania 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łączysz interfejs Chat API, skonfigurować aplikację Google Chat oraz ustawić uwierzytelnianie. Więcej informacji: Programowanie w Google Workspace oraz Utwórz aplikację Google Chat.
Wywoływanie interfejsu Chat API: gdy aplikacja wywołuje interfejs Chat API, wysyła do niego dane uwierzytelniające. Jeśli uwierzytelnia się przy użyciu konta usługi, dane uwierzytelniające są wysyłane jako stanowią 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.
Przesyłanie próśb o zasoby: aplikacja prosi o dostęp przy użyciu: zakresy określonego podczas konfigurowania uwierzytelniania.
Poproś o zgodę: jeśli aplikacja uwierzytelnia się jako użytkownik, Google wyświetla ekran zgody OAuth, aby użytkownik mógł zdecydować, czy przyznać aplikacji dostęp do żądanych danych. Uwierzytelnianie za pomocą konta usługi nie pozwala wymagają zgody użytkownika.
Wyślij zatwierdzone żądanie 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 do serwera autoryzacji Google aby uzyskać token dostępu.
Google zwraca token dostępu: zawiera on listę przyznanych uprawnień. Jeśli zwrócona lista zakresów jest bardziej restrykcyjna niż żądanych zakresów, 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 mieć dostęp do Interfejs Google Chat API po upłynięciu pojedynczego tokena dostępu może uzyskać token odświeżania. Więcej informacji: Dostęp do interfejsów API Google przy użyciu 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).
Kiedy aplikacje czatu wymagają uwierzytelnienia
aplikacje do obsługi czatu mogą wysyłać wiadomości w odpowiedzi na interakcję użytkownika; 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 interakcji użytkownika, chyba że aplikacja Google Chat wywoła metodę Chat API lub inny interfejs API Google podczas przetwarzania odpowiedzi.
Aby wysyłać wiadomości asynchroniczne lub wykonywać zadania w imieniu użytkownika, Aplikacje do obsługi czatu wysyłają żądania REST do Chat API które wymagają uwierzytelniania i autoryzacji.
odpowiedzi na interakcje użytkowników nie wymagają uwierzytelniania;
Aplikacje Google Chat nie muszą uwierzytelniać się jako użytkownik lub Aplikacja do obsługi czatu, która otrzymuje wiadomości i odpowiada na nie synchronicznie 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 poleceń aplikacji Google Chat polecenia po ukośniku.
Na diagramie poniżej widać sekwencję żądania i odpowiedzi Użytkownik Google Chat i aplikacja Google Chat:
- Użytkownik wysyła wiadomość do aplikacji Google Chat.
- Google Chat przekierowuje wiadomość do aplikacji.
- Aplikacja odbiera wiadomość, przetwarza ją i zwraca odpowiedź na adres Google Chat.
- Google Chat renderuje odpowiedź dla użytkownika lub w pokoju.
Ta sekwencja powtarza się przy każdej interakcji w aplikacji Google Chat .
Wiadomości asynchroniczne wymagają uwierzytelniania
Komunikaty asynchroniczne występują, gdy aplikacja Google Chat wykona do Chat API który wymaga uwierzytelnienia i autoryzacji.
Po wywołaniu interfejsu Chat API aplikacje Google Chat mogą publikować wiadomości z 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.
- Dodaj osoby do pokoju czatu.
- 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 Google Chat tworzy wiadomość, wywołując metodę
Interfejs Chat API za pomocą
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ść z aplikacji w określonym Google Chat kosmosu.
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, aby opublikować ją później.
Aby określić poziom dostępu przyznanego aplikacji, musisz określić zadeklarować zakresy autoryzacji. Zakres autoryzacji to identyfikator URI OAuth 2.0 ciąg znaków zawierający nazwę aplikacji Google Workspace, rodzaj danych, 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. Ty nie może uwierzytelnić się za pomocą danych logowania użytkownika lub za pomocą usługi przekazywanie dostępu w całej domenie za pomocą 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 ustawienia 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 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 na wiadomość 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świetlanie czatu i pokoi należących 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 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 w przypadku kont usługi. Ty nie może uwierzytelnić się za pomocą danych logowania użytkownika lub za pomocą usługi przekazywanie dostępu w całej domenie za pomocą 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 w przypadku kont usługi. Ty nie może uwierzytelnić się za pomocą danych logowania użytkownika lub za pomocą usługi przekazywanie dostępu w całej domenie za pomocą 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 za pomocą kont usługi. Ty nie może uwierzytelnić się za pomocą danych logowania użytkownika lub za pomocą usługi przekazywanie dostępu w całej domenie za pomocą tego zakresu. |
https://www.googleapis.com/auth/chat.customemojis
|
Wyświetlaj, twórz i usuwaj niestandardowe emotikony w Google Chat. |
Zakresy z ograniczeniami
Kod zakresu | Opis |
---|---|
https://www.googleapis.com/auth/chat.delete
|
Usuwanie rozmów i pokoi oraz odbieranie dostępu do powiązanych plików w Google Chat. |
https://www.googleapis.com/auth/chat.import
|
Importuj pokoje, wiadomości i subskrypcje do Google Chat. Dla: więcej informacji znajdziesz w Autoryzowanie importowania danych przez aplikacje do obsługi czatu |
https://www.googleapis.com/auth/chat.messages
|
Wyświetlanie, tworzenie, wysyłanie, aktualizowanie i usuwanie wiadomości oraz dodawanie, wyświetlanie i usuwać reakcje 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ć wątki i pokoje należące do domeny administratora, a także odbierać dostęp do powiązanych plików. w Google Chat. |
https://www.googleapis.com/auth/chat.app.delete
|
Usuwanie rozmów i pokoi oraz odbieranie dostępu do powiązanych plików w Google Chat. Wymaga zatwierdzenia przez administratora. Ten zakres obsługuje tylko uwierzytelnianie aplikacji za pomocą kont usługi. Ty nie może uwierzytelnić się za pomocą danych logowania użytkownika lub za pomocą usługi przekazywanie dostępu w całej domenie za pomocą tego zakresu. |
Zakresy w poprzednich tabelach wskazują ich poziom wrażliwości zgodnie z tymi definicjami:
Niewrażliwe – te zakresy zapewniają najmniejszą sferę dostępu do autoryzacji i wymagają jedynie podstawowej weryfikacji aplikacji. Dla: o tym wymaganiu, zapoznaj się z artykułem Etapy przygotowania do weryfikacji.
Poufne – te zakresy dają aplikacji dostęp do określonych danych Google użytkownika po otrzymaniu autoryzacji od niego. Wymaga musisz przejść dodatkową weryfikację aplikacji. Więcej informacji o tym wymaganiu znajdziesz w artykule Kroki dla aplikacji wymagających dostępu do danych wrażliwych.
Ograniczony dostęp – te zakresy zapewniają szeroki dostęp do danych użytkowników Google i wymagają przejścia procesu weryfikacji zakresu z ograniczeniami. Dla: informacje na temat tego wymogu znajdziesz w artykule Usługi interfejsów API Google: dane użytkownika Zasady oraz Dodatkowe wymagania dotyczące konkretnego interfejsu API Zakresy. 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 dodać te zakresy . Więcej informacji o zakresach interfejsów API Google znajdziesz w artykule Używanie protokołu OAuth 2.0 do Dostęp 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 protokołu 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 aplikacji
Uwierzytelnianie aplikacji pozwala Aplikacja do obsługi czatu będzie używać danych logowania do konta usługi i dostępu danych i wykonania działań. Ponieważ aplikacja do obsługi czatu używa własnych danych logowania do dostępu do zasobów i pracy z nimi użytkownicy nie muszą zatwierdzać wywołania interfejsu API aplikacji do obsługi czatu, i nie możesz dodawać zakresów autoryzacji OAuth obsługujących autoryzację aplikacji na ekranie zgody OAuth.
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. Twoje Aplikacja do obsługi 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 Chat do uzyskania zgody administratora, tworząc klienta OAuth zgodnego z Google Workspace Marketplace i konfigurując aplikację w pakiecie SDK Google Workspace Marketplace. Te zakresy zezwolić aplikacji Google Chat na wywoływanie określonego interfejsu Google Chat API . Na przykładchat.app.spaces.create
umożliwia aplikacjom tworzenie Pokoje 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:
- Gdy uwierzytelnianie aplikacji jest włączone, metody zwracają tylko zasoby, które Aplikacja do obsługi czatu ma dostęp.
- W przypadku uwierzytelniania użytkownika metody zwracają tylko zasoby, które użytkownik mają 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
ćwiczeń, możesz użyć obu typów
uwierzytelnianie przy wywoływaniu interfejsu Chat API (w zależności od projektu
i funkcje aplikacji Google Chat.
Asynchroniczne wywołania 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 |
Za pomocą uwierzytelniania użytkowników:
|
|||
Lista pokoi |
Za pomocą uwierzytelniania użytkowników:
|
|||
Szukaj w pokojach | – |
W przypadku uwierzytelniania użytkowników przy użyciu uprawnień administratora:
|
||
Aktualizowanie pokoju |
Za pomocą uwierzytelniania użytkowników:
|
|||
Usuwanie pokoju |
Uwierzytelnianie użytkownika:
|
|||
Zakończenie procesu importowania pokoju | – |
Uwierzytelnianie użytkownika:
|
||
Znajdowanie czatu |
Za pomocą uwierzytelniania użytkowników:
|
|||
Uczestnicy | ||||
Tworzenie członka grupy |
Za pomocą uwierzytelniania użytkowników:
|
|||
Zostań wspierającym |
Uwierzytelnianie użytkownika:
|
|||
Członkowie grupy |
Za pomocą uwierzytelniania użytkowników:
|
|||
Usuwanie użytkownika |
Za pomocą uwierzytelniania użytkowników:
|
|||
Aktualizowanie użytkownika |
Uwierzytelnianie użytkownika:
|
|||
Wiadomości | ||||
Tworzenie wiadomości |
Uwierzytelnianie użytkownika:
|
|||
Odbierz wiadomość |
Uwierzytelnianie użytkownika:
|
|||
Wyświetlanie wiadomości | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Aktualizowanie wiadomości |
Za pomocą uwierzytelniania użytkowników:
|
|||
Usuwanie wiadomości |
Za pomocą uwierzytelniania użytkowników:
|
|||
Reakcje | ||||
Tworzenie reakcji | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Lista reakcji | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Usuwanie reakcji | – |
Za pomocą uwierzytelniania użytkowników:
|
||
niestandardowe emotikony, | ||||
Tworzenie niestandardowych emotikonów | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Usuwanie niestandardowych emotikonów | – |
Uwierzytelnianie użytkownika:
|
||
Pobierz niestandardowy emotikon | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Wyświetlanie niestandardowych emotikonów | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Media i załączniki | ||||
Przesyłanie multimediów jako załącznika | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Pobieranie multimediów |
Za pomocą uwierzytelniania użytkowników:
|
|||
Otrzymywanie załącznika do wiadomości | – |
Za pomocą uwierzytelniania aplikacji:
|
||
Stany odczytu użytkownika | ||||
Pobieranie stanu odczytu pokoju użytkownika | – |
Uwierzytelnianie użytkownika:
|
||
Aktualizowanie stanu odczytu pokoju użytkownika | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Pobieranie stanu przeczytania wątku przez użytkownika | – |
Za pomocą uwierzytelniania użytkowników:
|
||
Zdarzenia w pokoju | ||||
Zyskaj dostęp do wydarzeń dotyczących pokoju | – |
Uwierzytelnianie użytkowników pozwala
musisz użyć zakresu opartego na
typ zdarzenia:
|
||
Lista zdarzeń w pokoju | – |
Uwierzytelnianie użytkowników pozwala
musisz użyć zakresu dla każdej
typ zdarzenia uwzględnionego w żądaniu:
|
Zdarzenia interakcji z aplikacją Google Chat
W poniższej tabeli podano typowe sposoby interakcji użytkowników z aplikacjami Aplikacje do obsługi czatu oraz informacje o tym, czy uwierzytelnianie jest wymagane czy obsługiwane:
Scenariusz | Bez uwierzytelniania | Obsługa uwierzytelniania użytkowników | Obsługa uwierzytelniania aplikacji | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Odbieranie wiadomości z: |
|
|||||||||||||||
Odpowiadanie na wiadomości: |
|
|||||||||||||||
Wysyłanie nowych wiadomości: |
|
Powiązane artykuły
- Omówienie uwierzytelniania i autoryzacji w Google Workspace: zobacz Dowiedz się więcej o uwierzytelnianiu autoryzacją usługi.
- 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.
- Aby dowiedzieć się więcej o tym, jak interfejsy API Google korzystają z OAuth 2.0, zobacz Korzystanie z 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.