Authentifizierung und Autorisierung sind Mechanismen zur Überprüfung der Identität bzw. des Zugriffs auf Ressourcen. In diesem Dokument wird beschrieben, wie die Authentifizierung und Autorisierung für Chat-Apps und Chat API-Anfragen funktioniert.
Prozessübersicht
Das folgende Diagramm zeigt die allgemeinen Schritte zur Authentifizierung und Autorisierung für Google Chat:
Google Cloud-Projekt konfigurieren, die Chat API aktivieren und Ihre Chat-App konfigurieren:Während der Entwicklung erstellen Sie ein Google Cloud-Projekt. Im Google Cloud-Projekt aktivieren Sie die Chat API, konfigurieren Ihre Chat-App und richten die Authentifizierung ein. Weitere Informationen finden Sie unter Develop in Google Workspace und Chat-App erstellen.
Call Chat API:Wenn Ihre App die Chat API aufruft, sendet sie Anmeldedaten zur Authentifizierung an die Chat API. Wenn sich Ihre Anwendung mit einem Dienstkonto authentifiziert, werden die Anmeldedaten als Teil des Anwendungscodes gesendet. Wenn in Ihrer Anwendung die Chat API mit einer Nutzerauthentifizierung aufgerufen werden muss, die noch nicht gewährt wurde, wird der Nutzer aufgefordert, sich anzumelden.
Ressourcen anfordern: Ihre Anwendung fordert Zugriff mit Bereichen an, die Sie beim Einrichten der Authentifizierung angeben.
Einwilligung einholen:Wenn Ihre Anwendung als Nutzer authentifiziert wird, zeigt Google einen OAuth-Zustimmungsbildschirm an, damit der Nutzer entscheiden kann, ob Ihrer Anwendung Zugriff auf die angeforderten Daten gewährt wird. Für die Authentifizierung mit einem Dienstkonto ist keine Nutzereinwilligung erforderlich.
Genehmigte Ressourcenanfrage senden:Wenn der Nutzer in die Autorisierungsbereiche einwilligt, bündelt Ihre App die Anmeldedaten und die vom Nutzer genehmigten Bereiche in einer Anfrage. Die Anfrage wird an den Google-Autorisierungsserver gesendet, um ein Zugriffstoken abzurufen.
Google gibt ein Zugriffstoken zurück: Das Zugriffstoken enthält eine Liste der gewährten Bereiche. Wenn die zurückgegebene Liste von Bereichen restriktiver als die angeforderten Bereiche ist, deaktiviert Ihre Anwendung alle Funktionen, die durch das Token eingeschränkt sind.
Zugriff angeforderter Ressourcen:Ihre Anwendung verwendet das Zugriffstoken von Google, um die Chat API aufzurufen und auf Chat API-Ressourcen zuzugreifen.
Aktualisierungstoken abrufen (optional): Wenn Ihre Anwendung über die Lebensdauer eines Zugriffstokens hinaus auf die Google Chat API zugreifen muss, kann sie ein Aktualisierungstoken abrufen. Weitere Informationen finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.
Weitere Ressourcen anfordern:Wenn die Anwendung mehr Zugriff benötigt, wird der Nutzer aufgefordert, neue Bereiche zu gewähren. Dies führt zu einer neuen Anfrage zum Abrufen eines Zugriffstokens (Schritte 3–6).
Wann Chat-Apps eine Authentifizierung erfordern
Chat-Apps können Nachrichten als Antwort auf eine Nutzerinteraktion oder asynchron senden. Sie können auch Aufgaben im Namen eines Nutzers ausführen, z. B. einen Chatbereich erstellen oder eine Liste der Personen in einem Chatbereich abrufen.
Chat-Anwendungen erfordern keine Authentifizierung, um auf eine Nutzerinteraktion zu reagieren, es sei denn, die Chat-App ruft während der Verarbeitung einer Antwort die Chat API oder eine andere Google API auf.
Zum Senden asynchroner Nachrichten oder Ausführen von Aufgaben im Namen eines Nutzers senden Chat-Apps RESTful-Anfragen an die Chat API. Für diese Anfragen sind eine Authentifizierung und Autorisierung erforderlich.
Für Antworten auf Nutzerinteraktionen ist keine Authentifizierung erforderlich
Google Chat-Apps müssen sich nicht als Nutzer oder Chat-App authentifizieren, um Interaktionsereignisse synchron zu empfangen und darauf zu reagieren.
Google Chat-Apps empfangen Interaktionsereignisse, wenn ein Nutzer mit einer Chat-App interagiert oder sie aufruft. Dazu gehören:
- Ein Nutzer sendet eine Nachricht an eine Chat-App.
- Ein Nutzer erwähnt eine Chat-App mit @.
- Ein Nutzer ruft einen der Slash-Befehle der Chat-App auf.
Das folgende Diagramm zeigt eine Anfrage-Antwort-Sequenz zwischen einem Chat-Nutzer und einer Chat-App:
- Der Nutzer sendet eine Nachricht an die Chat-App in Google Chat.
- Google Chat leitet die Nachricht an die App weiter.
- Die Anwendung empfängt die Nachricht, verarbeitet sie und gibt eine Antwort an Google Chat zurück.
- Google Chat rendert die Antwort für den Nutzer oder in einem Gruppenbereich.
Diese Abfolge wiederholt sich für jedes Chat-App-Interaktionsereignis.
Für asynchrone Nachrichten ist eine Authentifizierung erforderlich
Asynchrone Nachrichten treten auf, wenn eine Chat-App eine Anfrage an die Chat API sendet, für die eine Authentifizierung und Autorisierung erforderlich ist.
Durch das Aufrufen der Chat API können Chat-Apps Nachrichten an Google Chat posten, Aufgaben erledigen und im Namen eines Nutzers auf Daten zugreifen. Nachdem ein Serverausfall erkannt wurde, kann eine Chat-App die Chat API beispielsweise für Folgendes aufrufen:
- Erstellen Sie einen Chatbereich für die Untersuchung und Behebung des Ausfalls.
- Fügen Sie dem Chatbereich Personen hinzu.
- Posten Sie eine Nachricht im Chatbereich mit Details zum Ausfall.
Das folgende Diagramm zeigt eine asynchrone Nachrichtensequenz zwischen einer Chat-App und einem Chatbereich:
- Eine Chat-App erstellt eine Nachricht, indem sie die Chat API mit der Methode
spaces.messages.create
aufruft, und nimmt Nutzeranmeldedaten in die HTTP-Anfrage auf. - Google Chat authentifiziert die Chat-App mit Dienstkonto- oder Nutzeranmeldedaten.
- Google Chat rendert die Nachricht der Anwendung in einem angegebenen Chatbereich.
Chat API-Bereiche
Konfigurieren Sie den OAuth-Zustimmungsbildschirm und wählen Sie Bereiche aus, um festzulegen, welche Informationen Nutzern und App-Prüfern angezeigt werden. Registrieren Sie dann Ihre App für die spätere Veröffentlichung.
Um die Zugriffsebene für Ihre Anwendung festzulegen, müssen Sie Autorisierungsbereiche identifizieren und deklarieren. Ein Autorisierungsbereich ist ein OAuth 2.0-URI-String, der den Namen der Google Workspace-Anwendung, die Art der Daten und die Zugriffsebene enthält.
Nicht vertrauliche Bereiche
Bereichscode | Beschreibung |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Der Bereich Ermöglicht Chat-Apps, Chats anzusehen und Nachrichten zu senden. Gewährt Zugriff auf alle Funktionen, die für Chat-Apps verfügbar sind. |
Sensible Bereiche
Bereichscode | Beschreibung |
---|---|
https://www.googleapis.com/auth/chat.spaces
|
In Google Chat können Sie Unterhaltungen und Gruppenbereiche erstellen sowie Metadaten (einschließlich Verlaufs- und Zugriffseinstellungen) aufrufen oder bearbeiten. |
https://www.googleapis.com/auth/chat.spaces.create
|
Sie können neue Unterhaltungen in Google Chat erstellen. |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Chats und Gruppenbereiche in Google Chat ansehen. |
https://www.googleapis.com/auth/chat.memberships
|
Mitglieder in Google Chat-Unterhaltungen aufrufen, hinzufügen, aktualisieren und entfernen. |
https://www.googleapis.com/auth/chat.memberships.app
|
Sich selbst zu Google Chat-Unterhaltungen hinzufügen oder daraus entfernen. |
https://www.googleapis.com/auth/chat.memberships.readonly
|
Mitglieder in Google Chat-Unterhaltungen ansehen. |
https://www.googleapis.com/auth/chat.messages.create
|
Nachrichten in Google Chat schreiben und senden. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Reaktionen auf Nachrichten in Google Chat ansehen, hinzufügen und löschen. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Reaktionen auf eine Nachricht in Google Chat hinzufügen. |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Reaktionen auf eine Nachricht in Google Chat ansehen. |
https://www.googleapis.com/auth/chat.users.readstate
|
„Zuletzt gelesen“-Zeit für Chat-Unterhaltungen ansehen und ändern. |
https://www.googleapis.com/auth/chat.users.readstate.readonly
|
„Zuletzt gelesen“-Zeit für Chat-Unterhaltungen anzeigen. |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
In Google Chat können Sie Chats und Gruppenbereiche aufrufen, die der Domain des Administrators gehören. |
https://www.googleapis.com/auth/chat.admin.spaces
|
In Google Chat können Sie Chats und Gruppenbereiche, die der Domain des Administrators gehören, ansehen oder bearbeiten. |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
Mitglieder und Manager von Unterhaltungen, die zur Domain des Administrators gehören, in Google Chat ansehen. |
https://www.googleapis.com/auth/chat.admin.memberships
|
Mitglieder und Manager in Unterhaltungen, die der Domain des Administrators gehören, in Google Chat ansehen, hinzufügen, aktualisieren und entfernen. |
Eingeschränkte Bereiche
Bereichscode | Beschreibung |
---|---|
https://www.googleapis.com/auth/chat.delete
|
In Google Chat können Sie Unterhaltungen und Gruppenbereiche löschen sowie den Zugriff auf verknüpfte Dateien entfernen. |
https://www.googleapis.com/auth/chat.import
|
Gruppenbereiche, Nachrichten und Mitgliedschaften in Google Chat importieren. Weitere Informationen finden Sie unter Chat-Apps zum Importieren von Daten autorisieren. |
https://www.googleapis.com/auth/chat.messages
|
Sie können Nachrichten ansehen, verfassen, senden, aktualisieren und löschen sowie Reaktionen auf Nachrichten hinzufügen, ansehen und löschen. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Nachrichten und Reaktionen in Google Chat ansehen. |
https://www.googleapis.com/auth/chat.admin.delete
|
Löschen Sie Unterhaltungen und Gruppenbereiche, die der Domain des Administrators gehören, und entfernen Sie den Zugriff auf verknüpfte Dateien in Google Chat. |
Die Bereiche in den vorherigen Tabellen geben ihre Vertraulichkeit gemäß den folgenden Definitionen an:
Nicht vertraulich: Diese Bereiche bieten den kleinsten Autorisierungszugriff und erfordern nur eine einfache App-Überprüfung. Informationen zu dieser Anforderung finden Sie unter Schritte zur Vorbereitung auf die Prüfung.
Vertraulich: Diese Bereiche ermöglichen Ihrer Anwendung nach der Autorisierung des Nutzers Zugriff auf die Google-Daten eines bestimmten Nutzers. Dazu ist eine zusätzliche Anwendungsüberprüfung erforderlich. Informationen zu dieser Anforderung finden Sie unter Schritte für Anwendungen, die vertrauliche Bereiche anfordern.
Eingeschränkt: Diese Bereiche bieten einen umfassenden Zugriff auf Google-Nutzerdaten und Sie müssen den Überprüfungsprozess für den eingeschränkten Bereich durchlaufen. Informationen zu dieser Anforderung finden Sie unter Google API-Dienste: Richtlinie zu Nutzerdaten und Zusätzliche Anforderungen für bestimmte API-Bereiche. Siehe auch Schritte für Anwendungen, die eingeschränkte Bereiche anfordern.
Wenn Ihre Anwendung Zugriff auf andere Google APIs benötigt, können Sie diese Bereiche ebenfalls hinzufügen. Weitere Informationen zu Google API-Bereichen finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.
Weitere Informationen zu Bereichen für Google Workspace APIs finden Sie unter OAuth-Zustimmungsbildschirm konfigurieren und Bereiche auswählen.
Erforderliche Authentifizierungstypen
Es gibt zwei Möglichkeiten, sich mit der Chat API von Chat-Apps zu authentifizieren und zu autorisieren: Nutzeranmeldedaten oder Dienstkonten.
Mit der Autorisierung der Nutzeranmeldedaten kann eine Chat-App auf Nutzerdaten zugreifen und im Namen eines Nutzers Aktionen ausführen. OAuth-Bereiche geben die autorisierten Daten und Aktionen an.
Bei der App-Autorisierung greift eine Chat-App mithilfe der Anmeldedaten des Dienstkontos als App auf die API zu. Die App-Autorisierung verwendet immer den Autorisierungsbereich chat.bot
.
Berücksichtigen Sie bei der Entscheidung, welche Art von Anmeldedaten für eine bestimmte API-Anfrage verwendet werden soll, dass einige API-Methoden nur einen bestimmten Anmeldedatentyp unterstützen. Wenn eine API-Methode beide Anmeldedaten unterstützt, wirkt sich der im Aufruf verwendete Anmeldedatentyp auf das zurückgegebene Ergebnis aus:
- Bei der Anwendungsautorisierung geben die Methoden nur Ressourcen zurück, auf die die app zugreifen kann.
- Nach der Nutzerautorisierung geben die Methoden nur Ressourcen zurück, auf die der Nutzer in der Chat-UI zugreifen kann.
Wenn Sie beispielsweise die Methode ListSpaces
mit Anwendungsautorisierung aufrufen, wird die Liste der Bereiche zurückgegeben, in denen die Anwendung Mitglied ist. Wenn Sie ListSpaces
mit Nutzerautorisierung aufrufen, wird die Liste der Gruppenbereiche zurückgegeben, in denen der Nutzer Mitglied ist. In der Praxis kann Ihre Anwendung beim Aufrufen der Chat API je nach gewünschter Funktionalität beide Autorisierungstypen verwenden.
Für asynchrone Chat API-Aufrufe
In der folgenden Tabelle sind die Chat API-Methoden und ihre unterstützten Autorisierungsbereiche aufgeführt:
Methode | Nutzerauthentifizierung wird unterstützt | App-Authentifizierung wird unterstützt | Unterstützte Autorisierungsbereiche | |
---|---|---|---|---|
Gruppenbereiche | ||||
Gruppenbereich erstellen | — |
Mit Nutzerauthentifizierung:
|
||
Gruppenbereich einrichten | — |
Mit Nutzerauthentifizierung:
|
||
Gruppenbereich anfordern |
Mit Nutzerauthentifizierung:
|
|||
Gruppenbereiche auflisten |
Mit Nutzerauthentifizierung:
|
|||
In Gruppenbereichen suchen |
Mit der Nutzerauthentifizierung unter Verwendung von Administratorberechtigungen:
|
|||
Gruppenbereiche aktualisieren | — |
Mit Nutzerauthentifizierung:
|
||
Gruppenbereiche löschen | — |
Mit Nutzerauthentifizierung:
|
||
Import für einen Gruppenbereich abschließen | — |
Mit Nutzerauthentifizierung:
|
||
Direktnachrichten suchen |
Mit Nutzerauthentifizierung:
|
|||
Mitglieder | ||||
Mitglied erstellen | — |
Mit Nutzerauthentifizierung:
|
||
Mitglied werden |
Mit Nutzerauthentifizierung:
|
|||
Listenmitglieder |
Mit Nutzerauthentifizierung:
|
|||
Mitglied löschen | — |
Mit Nutzerauthentifizierung:
|
||
Mitglieder aktualisieren | — |
Mit Nutzerauthentifizierung:
|
||
Nachrichten | ||||
Nachricht erstellen |
Mit Nutzerauthentifizierung:
|
|||
Nachricht erhalten |
Mit Nutzerauthentifizierung:
|
|||
Nachrichten auflisten | — |
Mit Nutzerauthentifizierung:
|
||
Nachrichten aktualisieren |
Mit Nutzerauthentifizierung:
|
|||
Nachrichten löschen |
Mit Nutzerauthentifizierung:
|
|||
Reaktionen | ||||
Reaktion erstellen | — |
Mit Nutzerauthentifizierung:
|
||
Reaktionen auflisten | — |
Mit Nutzerauthentifizierung:
|
||
Reaktionen löschen | — |
Mit Nutzerauthentifizierung:
|
||
Medien und Anhänge | ||||
Medien als Dateianhang hochladen | — |
Mit Nutzerauthentifizierung:
|
||
Medien herunterladen |
Mit Nutzerauthentifizierung:
|
|||
Nachrichtenanhang abrufen | — |
Mit App-Authentifizierung:
|
||
Lesestatus des Nutzers | ||||
Lesestatus des Gruppenbereichs eines Nutzers abrufen | — |
Mit Nutzerauthentifizierung:
|
||
Lesestatus des Gruppenbereichs eines Nutzers aktualisieren | — |
Mit Nutzerauthentifizierung:
|
||
Thread-Lesestatus eines Nutzers abrufen | — |
Mit Nutzerauthentifizierung:
|
||
Veranstaltungen im Weltraum | ||||
Veranstaltungen aus dem Weltraum erhalten | — |
Mit Nutzerauthentifizierung:
|
||
Veranstaltungen aus dem Weltraum auflisten | — |
Mit Nutzerauthentifizierung:
|
Für Ereignisse in der Chat-App
In der folgenden Tabelle ist aufgeführt, wie Nutzer häufig mit Chat-Apps interagieren und ob eine Authentifizierung erforderlich oder unterstützt wird:
Szenario | Keine Authentifizierung erforderlich | Nutzerauthentifizierung wird unterstützt | App-Authentifizierung wird unterstützt | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nachrichten erhalten von: |
|
|||||||||||||||
So antworten Sie auf Nachrichten: |
|
|||||||||||||||
Neue Nachrichten senden: |
|
Weitere Informationen
- Eine Übersicht über die Authentifizierung und Autorisierung in Google Workspace finden Sie unter Informationen zur Authentifizierung und Autorisierung.
- Eine Übersicht über die Authentifizierung und Autorisierung in Google Cloud finden Sie unter Authentifizierung.
- Weitere Informationen zu Dienstkonten finden Sie unter Dienstkonten.
- Weitere Informationen dazu, wie Google APIs OAuth 2.0 nutzen, finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.
- Richten Sie die Authentifizierung und Autorisierung mit Nutzeranmeldedaten oder einem Dienstkonto ein.