W tej sekcji znajdziesz instrukcje weryfikacji, czy żądania wysyłane do punktu końcowego pochodzą z Google Chat. Dotyczy to aplikacji Google Chat opartych na punktach końcowych HTTP.
Aby wysyłać zdarzenia interakcji do punktu końcowego aplikacji Google Chat, Google wysyła do Twojej usługi żądania. Aby potwierdzić, że żądanie pochodzi z Google, Chat zawiera token pełnomocnictwa w nagłówku Authorization
każdego żądania HTTPS do Twojego punktu końcowego. Przykład:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
Ciąg znaków AbCdEf123456
w poprzednim przykładzie to token autoryzacji noszącego. To token kryptograficzny wygenerowany przez Google. Typ tokena biernego i wartość pola audience
zależą od typu odbiorców uwierzytelniania wybranego podczas konfigurowania aplikacji Chat.
Jeśli aplikacja Google Chat została zaimplementowana za pomocą funkcji Cloud Functions lub Cloud Run, weryfikacja tokena jest obsługiwana automatycznie przez Cloud IAM. Wystarczy, że dodasz konto usługi Google Chat jako autoryzowanego wywołującego. Jeśli aplikacja implementuje własny serwer HTTP, możesz zweryfikować token pliku bearer za pomocą biblioteki klienta interfejsu API Google open source:
- Java: https://github.com/google/google-api-java-client
- Python: https://github.com/google/google-api-python-client
- Node.js https://github.com/google/google-api-nodejs-client
- .NET: https://github.com/google/google-api-dotnet-client
Jeśli token nie zostanie zweryfikowany w aplikacji Google Chat, usługa powinna odpowiedzieć na żądanie kodem odpowiedzi HTTPS401 (Unauthorized)
.
uwierzytelniać żądania za pomocą Cloud Functions lub Cloud Run;
Jeśli logika funkcji jest implementowana za pomocą Cloud Functions lub Cloud Run, w polu Authentication Audience (Grupa uwierzytelniania) w ustawieniu połączenia aplikacji Google Chat musisz wybrać adres URL punktu końcowego HTTP. Upewnij się, że adres URL punktu końcowego HTTP w konfiguracji odpowiada adresowi URL punktu końcowego Cloud Functions lub Cloud Run.
Następnie musisz autoryzować konto usługi Google Chat
chat@system.gserviceaccount.com
jako wywoływacza.
Poniżej znajdziesz instrukcje korzystania z Cloud Functions (1 generacji):
Konsola
Po wdrożeniu funkcji do Google Cloud:
W konsoli Google Cloud otwórz stronę Cloud Functions:
Na liście funkcji Cloud Functions kliknij pole wyboru obok funkcji odbierającej. (Nie klikaj samej funkcji).
Kliknij Uprawnienia u góry ekranu. Otworzy się panel Uprawnienia.
Kliknij Dodaj podmiot zabezpieczeń.
W polu Nowe podmioty zabezpieczeń wpisz
chat@system.gserviceaccount.com
.W menu Wybierz rolę wybierz rolę Cloud Functions > Wywołujący Cloud Functions.
Kliknij Zapisz.
gcloud
Użyj polecenia gcloud functions add-iam-policy-binding
:
gcloud functions add-iam-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com' \
--role='roles/cloudfunctions.invoker'
Zastąp RECEIVING_FUNCTION
nazwą funkcji aplikacji Google Chat.
Poniższe kroki pokazują, jak korzystać z usług Cloud Functions (2 generacji) lub Cloud Run:
Konsola
Po wdrożeniu funkcji lub usługi do Google Cloud:
W konsoli Google Cloud otwórz stronę Cloud Run:
Na liście usług Cloud Run kliknij pole wyboru obok funkcji odbierającej. (Nie klikaj samej funkcji).
Kliknij Uprawnienia u góry ekranu. Otworzy się panel Uprawnienia.
Kliknij Dodaj podmiot zabezpieczeń.
W polu Nowe podmioty zabezpieczeń wpisz
chat@system.gserviceaccount.com
.W menu Wybierz rolę wybierz rolę Cloud Run > Wywołujący Cloud Run.
Kliknij Zapisz.
gcloud
Użyj polecenia gcloud functions add-invoker-policy-binding
:
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'
Zastąp RECEIVING_FUNCTION
nazwą funkcji aplikacji Chat.
Uwierzytelnianie żądań HTTP za pomocą tokena identyfikacyjnego
Jeśli pole Authentication Audience w ustawieniach połączenia aplikacji Google Chat jest ustawione na URL punktu końcowego HTTP, token autoryzacji okaziciela w żądaniu to podpisany przez Google token identyfikatora OpenID Connect (OIDC).
W polu email
ustawiono wartość chat@system.gserviceaccount.com
.
Pole Authentication Audience (Odbiorcy uwierzytelniania) zawiera adres URL skonfigurowany w Google Chat do wysyłania żądań do aplikacji Chat. Jeśli na przykład skonfigurowany punkt końcowy aplikacji Chat to https://example.com/app/
, pole Authentication Audience (Odbiorcy uwierzytelniania) w tokenie identyfikacyjnym to https://example.com/app/
.
Z poniższych przykładów dowiesz się, jak sprawdzić, czy token okaziciela został wydany przez Google Chat i kierowany na Twoją aplikację za pomocą biblioteki klienta Google OAuth.
Java
Python
Node.js
Uwierzytelnianie żądań za pomocą tokena JWT z numerem projektu
Jeśli pole „Authentication Audience” (Grupa odbiorców uwierzytelniania) w ustawieniu połączenia aplikacji Chat ma wartość Project
Number
, token autoryzacji noszącego w żądaniu jest samodzielnie podpisanym tokenem internetowym JSON (JWT), wydanym i podpisanym przez chat@system.gserviceaccount.com
.
Pole audience
jest ustawione na numer projektu Google Cloud, którego użyto do utworzenia aplikacji Google Chat. Jeśli na przykład numer projektu Google Cloud aplikacji Google Chat to 1234567890
, pole audience
w JWT to 1234567890
.
Poniższe przykłady pokazują, jak sprawdzić, czy token pliku bearer został wydany przez Google Chat i skierowany do Twojego projektu za pomocą biblioteki klienta OAuth Google.
Java
Python
Node.js
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 Chat znajdziesz w artykule Omówienie uwierzytelniania.
- Skonfiguruj uwierzytelnianie i autoryzację za pomocą danych logowania użytkownika lub konta usługi.