Für Google Chat-Apps, die auf HTTP-Endpunkten basieren, wird in diesem Abschnitt erläutert, wie Sie Prüfen Sie, ob die Anfragen an Ihren Endpunkt von Google Chat stammen.
Um Interaktionsereignisse an die
stellt Google Anfragen an Ihren Dienst. Um zu prüfen, ob die Anfrage
enthält Google Chat eine
Inhabertoken
im Authorization
-Header jeder HTTPS-Anfrage an Ihren Endpunkt. Beispiel:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
Der String AbCdEf123456
im vorherigen Beispiel ist die Inhaberautorisierung.
Token. Dies ist ein von Google erstelltes kryptografisches Token. Der Typ des Inhabers
und den Wert des
audience
abhängig vom Typ der Authentifizierungszielgruppe, die Sie beim
Die Chat-App konfigurieren
Chat-App mit Cloud implementiert Functions oder Cloud Run übernimmt Cloud IAM die Tokenüberprüfung automatisch. Ich Sie müssen nur das Google Chat-Dienstkonto als autorisierten Aufrufer hinzufügen. Wenn Ihre Anwendung einen eigenen HTTP-Server implementiert, können Sie das Inhabertoken überprüfen. mithilfe einer Open-Source-Google API-Clientbibliothek:
- 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
Wenn das Token für die Chat-App nicht bestätigt wird,
Der Dienst sollte auf die Anfrage mit einem HTTPS-Antwortcode antworten
401 (Unauthorized)
Anfragen mit Cloud Functions oder Cloud Run authentifizieren
Wenn Ihre Funktionslogik mit Cloud Functions oder Cloud Run implementiert ist,
App URL
als Authentication Audience (Authentifizierungszielgruppe) der
Chat-App
Verbindungseinstellung und achten Sie darauf,
App-URL in der Konfiguration entspricht der URL der Cloud Functions-Funktion oder
Cloud Run-Endpunkt.
Dann müssen Sie das Google Chat-Dienstkonto autorisieren.
chat@system.gserviceaccount.com
als Aufrufer.
Die folgenden Schritte zeigen, wie Cloud Functions (1. Generation) verwendet wird:
Console
Nach der Bereitstellung der Funktion in Google Cloud:
Wechseln Sie in der Google Cloud Console zur Seite Cloud Functions:
Klicken Sie in der Cloud Functions-Liste auf das Kästchen neben dem . (Klicken Sie nicht auf die Funktion selbst.)
Klicken Sie oben auf dem Bildschirm auf Berechtigungen. Der Bereich Berechtigungen wird geöffnet.
Klicken Sie auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten
chat@system.gserviceaccount.com
ein.Wählen Sie die Rolle Cloud Functions aus > Cloud Functions Invoker vom Drop-down-Menü Rolle auswählen aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie den Befehl gcloud functions add-iam-policy-binding
aus:
gcloud functions add-iam-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com' \
--role='roles/cloudfunctions.invoker'
Ersetzen Sie RECEIVING_FUNCTION
durch den Namen Ihres
Die Funktion der Chat-App
Die folgenden Schritte zeigen, wie Sie Cloud Functions (2. Generation) oder Cloud Run-Dienste verwenden:
Console
Nach der Bereitstellung der Funktion oder des Dienstes in Google Cloud:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
Klicken Sie in der Liste der Cloud Run-Dienste auf das Kästchen neben dem . (Klicken Sie nicht auf die Funktion selbst.)
Klicken Sie oben auf dem Bildschirm auf Berechtigungen. Der Bereich Berechtigungen wird geöffnet.
Klicken Sie auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten
chat@system.gserviceaccount.com
ein.Wählen Sie die Rolle Cloud Run aus > Cloud Run Invoker vom Drop-down-Menü Rolle auswählen aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie den Befehl gcloud functions add-invoker-policy-binding
aus:
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'
Ersetzen Sie RECEIVING_FUNCTION
durch den Namen Ihres
Die Funktion der Chat-App
Anfragen mit einem App-URL-ID-Token authentifizieren
Wenn das Feld „Authentifizierungsziel“ der Chat-App
Verbindungseinstellung auf App URL
gesetzt ist,
Das Inhaberautorisierungstoken in der Anfrage ist ein von Google signiertes OpenID Connect-Protokoll.
(OIDC)-ID-Token.
Das Feld email
ist auf chat@system.gserviceaccount.com
gesetzt.
Das Feld „audience
“ ist auf die URL festgelegt, die Sie in Google Chat gesendet haben
an Ihre Chat-App senden. Wenn zum Beispiel der Parameter
konfigurierter Endpunkt Ihrer Chat-App ist
https://example.com/app/
lautet, lautet das Feld audience
im ID-Token
https://example.com/app/
.
In den folgenden Beispielen wird gezeigt, wie überprüft werden kann, ob das Inhabertoken von Google Chat und verwenden Sie die Google OAuth-Clientbibliothek für das Targeting Ihrer App.
Java
Python
Node.js
Anfragen mit einem JWT der Projektnummer authentifizieren
Wenn das Feld „Authentifizierungsziel“ der Chat-App
Verbindungseinstellung auf Project
Number
gesetzt ist, ist das Inhaberautorisierungstoken in der Anfrage ein selbst signiertes
JSON-Webtoken (JWT)
von chat@system.gserviceaccount.com
ausgestellt und unterzeichnet.
Das Feld audience
ist auf die von Ihnen verwendete Google Cloud-Projektnummer festgelegt
um Ihre Chat-App zu erstellen. Wenn zum Beispiel
Die Cloud-Projektnummer der Chat-App lautet
1234567890
enthält, ist das Feld audience
im JWT 1234567890
.
In den folgenden Beispielen wird gezeigt, wie überprüft werden kann, ob das Inhabertoken von Google Chat und verwenden Sie die Google OAuth-Clientbibliothek für das Targeting Ihres Projekts.
Java
Python
Node.js
Weitere Informationen
- Einen Überblick über die Authentifizierung und Autorisierung in Google Workspace Siehe Informationen zur Authentifizierung und Autorisierung
- Einen Überblick über die Authentifizierung und Autorisierung in Google Chat Siehe Authentifizierungsübersicht
- Authentifizierung und Autorisierung einrichten mit Nutzeranmeldedaten oder Dienstkonto.