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
to Google wysyła żądania do Twojej usługi. Aby sprawdzić, czy prośba jest
pochodzących od Google,
token okaziciela
w nagłówku Authorization
każdego żądania HTTPS wysyłanego do punktu końcowego. Przykład:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
Ciąg AbCdEf123456
w poprzednim przykładzie to autoryzacja okaziciela
token. To token kryptograficzny wygenerowany przez Google. Typ okaziciela
token i wartość parametru
audience
zależy od typu grupy odbiorców uwierzytelniania, wybranej podczas
skonfigurować aplikację Google Chat.
Jeśli Twoja aplikacja Google Chat została wdrożona za pomocą Google Cloud lub Cloud Run, Cloud IAM automatycznie obsługuje weryfikację tokenów. Ty wystarczy dodać konto usługi Google Chat jako autoryzowany wywołujący. Jeśli Twoja aplikacja ma własny serwer HTTP, możesz zweryfikować token okaziciela za pomocą biblioteki klienta interfejsów API Google typu 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 dla aplikacji Google Chat,
usługa powinna odpowiadać na żądanie kodem odpowiedzi HTTPS
401 (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 w ustawieniu połączenia aplikacji Google Chat musisz wybrać adres URL punktu końcowego HTTP i upewnić 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łującego.
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 Cloud Functions zaznacz pole wyboru obok . Nie klikaj samej funkcji.
U góry ekranu kliknij Uprawnienia. Otworzy się panel Uprawnienia.
Kliknij Dodaj podmiot zabezpieczeń.
W polu Nowe podmioty zabezpieczeń wpisz
chat@system.gserviceaccount.com
.Wybierz rolę Cloud Functions > Wywołujący Cloud Functions Menu Wybierz rolę.
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ą swojego
Funkcja aplikacji Google Chat.
Aby korzystać z usług Cloud Functions (2 generacji) lub Cloud Run, wykonaj te czynności:
Konsola
Po wdrożeniu funkcji lub usługi w 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.
U góry ekranu kliknij Uprawnienia. Otworzy się panel Uprawnienia.
Kliknij Dodaj podmiot zabezpieczeń.
W polu Nowe podmioty zabezpieczeń wpisz
chat@system.gserviceaccount.com
.Wybierz rolę Cloud Run > Wywołujący Cloud Run z Menu Wybierz rolę.
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ą swojego
Funkcja aplikacji Google Chat.
Uwierzytelnianie żądań HTTP za pomocą tokena identyfikacyjnego
Jeśli w polu Authentication Audience (Odbiorcy uwierzytelniania) aplikacji Google Chat
ustawienie połączenia ma wartość
Adres URL punktu końcowego HTTP,
token autoryzacji okaziciela w żądaniu to podpisany przez Google identyfikator OpenID Connect
(OIDC) token identyfikatora.
Pole email
jest ustawione na 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ł wystawiony przez Google Chat i kierowane na Twoją aplikację za pomocą biblioteki klienta Google OAuth.
Java
Python
Node.js
Uwierzytelnianie żądań za pomocą tokena JWT z numerem projektu
Jeśli w polu Authentication Audience (Odbiorcy uwierzytelniania) aplikacji Google Chat
ustawienie połączenia ma wartość Project
Number
, token autoryzacji okaziciela w żądaniu jest samodzielnie podpisany
Token internetowy JSON (JWT),
wydane i podpisane przez chat@system.gserviceaccount.com
.
W polu audience
jest ustawiony numer używanego przez Ciebie projektu Google Cloud
aby stworzyć aplikację Google Chat. Jeśli na przykład plik
Numer projektu Cloud aplikacji do obsługi czatu to
1234567890
, to pole audience
w tokenie JWT zawiera 1234567890
.
Z poniższych przykładów dowiesz się, jak sprawdzić, czy token okaziciela został wystawiony przez Google Chat i ustaw kierowanie na Twój projekt za pomocą biblioteki klienta Google OAuth;
Java
Python
Node.js
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 Chat znajdziesz w artykule Omówienie uwierzytelniania.
- Skonfiguruj uwierzytelnianie i autoryzację za pomocą dane logowania użytkownika lub koncie usługi.