W przypadku aplikacji Google Chat utworzonych na punktach końcowych HTTP ta sekcja wyjaśnia, jak sprawdź, czy żądania wysyłane do punktu końcowego pochodzą z Google Chat.
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)
Uwierzytelnianie żądań za pomocą Cloud Functions lub Cloud Run
Jeśli logikę funkcji wdrożysz za pomocą Cloud Functions lub Cloud Run,
musi wybrać App URL
w polu Authentication Audience (Odbiorcy uwierzytelniania) w
aplikacja do obsługi czatu
ustawienia połączenia i upewnij się, że
URL aplikacji w konfiguracji odpowiada adresowi URL funkcji w Cloud Functions lub
Punkt końcowy 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 w Google Cloud:
W konsoli Google Cloud otwórz stronę Cloud Functions:
Na liście Cloud Functions zaznacz pole wyboru obok . Nie klikaj samej funkcji.
Kliknij Uprawnienia u góry ekranu. Panel Uprawnienia zostanie otwarte.
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.
Poniższe kroki pokazują, jak korzystać z usług Cloud Functions (2 generacji) lub Cloud Run:
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 zaznacz pole wyboru obok otrzymanego . Nie klikaj samej funkcji.
Kliknij Uprawnienia u góry ekranu. Panel Uprawnienia zostanie otwarte.
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ń za pomocą tokena identyfikatora adresu URL aplikacji
Jeśli w polu Authentication Audience (Odbiorcy uwierzytelniania) aplikacji Google Chat
ustawienie połączenia ma wartość App URL
,
token autoryzacji okaziciela w żądaniu to podpisany przez Google identyfikator OpenID Connect
Token tożsamości (OIDC).
Pole email
jest ustawione na chat@system.gserviceaccount.com
.
Pole audience
jest ustawione na adres URL skonfigurowany do wysyłania wiadomości w Google Chat
żądań wysyłanych do aplikacji Google Chat. Na przykład, jeśli plik
skonfigurowany punkt końcowy aplikacji Google Chat to
https://example.com/app/
, pole audience
w tokenie identyfikatora 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
- Aby dowiedzieć się więcej o uwierzytelnianiu i autoryzacji w Google Workspace, zobacz Więcej informacji o uwierzytelnianiu i autoryzowaniu
- Omówienie uwierzytelniania i autoryzacji w Google Chat: zobacz Omówienie uwierzytelniania.
- Skonfiguruj uwierzytelnianie i autoryzację za pomocą dane logowania użytkownika lub koncie usługi.