Authentifizierung und Autorisierung sind Mechanismen, mit denen die Identität bzw. der Zugriff auf Ressourcen überprüft wird. 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. Aktivieren Sie im Google Cloud-Projekt die Chat API, konfigurieren Sie Ihre Chat-App und richten Sie die Authentifizierung ein. Weitere Informationen finden Sie unter Mit Google Workspace entwickeln und Chat-App erstellen.
Call Chat API:Wenn Ihre App die Chat API aufruft, sendet sie Anmeldedaten zur Authentifizierung an die Chat API. Wenn Ihre App mit einem Dienstkonto authentifiziert wird, werden die Anmeldedaten als Teil des App-Codes gesendet. Wenn für Ihre App die Chat API mit der Authentifizierung eines Nutzers aufgerufen werden muss, die noch nicht gewährt wurde, wird der Nutzer aufgefordert, sich anzumelden.
Ressourcen anfordern: Ihre App fordert Zugriff mit Bereichen an, die Sie bei der Einrichtung 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 Anfrage für Ressourcen senden: Wenn der Nutzer den Autorisierungsbereichen zustimmt, 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 der Bereiche restriktiver ist als die angeforderten Bereiche, werden in Ihrer App alle Funktionen deaktiviert, 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 Reaktion auf eine Nutzerinteraktion oder asynchron senden. Sie können auch Aufgaben im Namen eines Nutzers erledigen, z. B. einen Chatbereich erstellen oder eine Liste der Personen in einem Chatbereich abrufen.
Chat-Apps 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.
Wenn Chat-Apps asynchrone Nachrichten senden oder Aufgaben im Namen eines Nutzers ausführen, senden sie RESTful-Anfragen an die Chat API, für die Authentifizierung und Autorisierung erforderlich sind.
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 Google Chat-Nutzer und der Google Chat App:
- Der Nutzer sendet eine Nachricht an die Chat-App in Google Chat.
- Google Chat leitet die Nachricht an die App weiter.
- Die App 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
Asynchronous messages occur when a Chat app makes a request to the Chat API, which requires authentication and authorization.
Durch den Aufruf der Chat API können Chat-Apps Nachrichten in Google Chat posten, Aufgaben erledigen und im Namen eines Nutzers auf Daten zugreifen. Wenn beispielsweise ein Serverausfall erkannt wird, kann eine Chat-App die Chat API aufrufen, um:
- Erstelle einen Chatbereich, um die Störung zu untersuchen und zu beheben.
- 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 Nutzeranmeldedaten in die HTTP-Anfrage einfügt. - Google Chat authentifiziert die Chat-App mit Dienstkonto- oder Nutzeranmeldedaten.
- Google Chat rendert die Nachricht der App in einem bestimmten Google Chat-Bereich.
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
Umfangscode | Beschreibung |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Ermöglicht Chat-Apps, Chats anzusehen und Nachrichten zu senden. Dieser Bereich unterstützt nur die App-Authentifizierung mit Dienstkonten. Sie können sich mit diesem Gültigkeitsbereich nicht mit Nutzeranmeldedaten oder mit domainweiter Delegierung authentifizieren. |
Sensible Bereiche
Umfangscode | 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
|
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 abrufen, hinzufügen, aktualisieren und entfernen |
https://www.googleapis.com/auth/chat.memberships.app
|
Sich 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 in Unterhaltungen der Domain des Administrators in Google Chat aufrufen |
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. |
https://www.googleapis.com/auth/chat.app.spaces
|
In Google Chat Unterhaltungen und Gruppenbereiche erstellen sowie Metadaten (einschließlich Verlaufs- und Zugriffseinstellungen) abrufen oder aktualisieren Erfordert die Administratorgenehmigung. Dieser Bereich unterstützt nur die App-Authentifizierung mit Dienstkonten. Mit diesem Bereich können Sie sich nicht mit Nutzeranmeldedaten oder mit der domainweiten Delegierung authentifizieren. |
https://www.googleapis.com/auth/chat.app.spaces.create
|
Sie können neue Unterhaltungen und Gruppenbereiche in Google Chat erstellen. Erfordert die Administratorgenehmigung. In diesem Bereich wird nur die App-Authentifizierung mit Dienstkonten unterstützt. Mit diesem Bereich können Sie sich nicht mit Nutzeranmeldedaten oder mit der domainweiten Delegierung authentifizieren. |
https://www.googleapis.com/auth/chat.app.memberships
|
Mitglieder in Unterhaltungen und Gruppenbereichen in Google Chat aufrufen, hinzufügen, aktualisieren und entfernen. Administratorgenehmigung erforderlich Dieser Bereich unterstützt nur die App-Authentifizierung mit Dienstkonten. Sie können sich mit diesem Gültigkeitsbereich nicht mit Nutzeranmeldedaten oder mit domainweiter Delegierung authentifizieren. |
https://www.googleapis.com/auth/chat.customemojis
|
Benutzerdefinierte Emojis in Google Chat abrufen, erstellen und löschen |
https://www.googleapis.com/auth/chat.customemojis.readonly
|
Benutzerdefinierte Emojis in Google Chat ansehen |
https://www.googleapis.com/auth/chat.users.spacesettings
|
Einstellungen für den Chat-Nutzerbereich ansehen und aktualisieren.
Siehe APIs für die Nutzereinstellungen von Gruppenbereichen: getSpaceNotificationSetting, updateSpaceNotificationSetting |
Eingeschränkte Bereiche
Bereichscode | Beschreibung |
---|---|
https://www.googleapis.com/auth/chat.delete
|
Unterhaltungen und Gruppenbereiche löschen sowie den Zugriff auf verknüpfte Dateien in Google Chat 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 lesen, 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. |
https://www.googleapis.com/auth/chat.app.delete
|
In Google Chat können Sie Unterhaltungen und Gruppenbereiche löschen sowie den Zugriff auf verknüpfte Dateien entfernen. Dafür ist die Administratorgenehmigung erforderlich. Dieser Bereich unterstützt nur die App-Authentifizierung mit Dienstkonten. Sie können sich mit diesem Gültigkeitsbereich nicht mit Nutzeranmeldedaten oder mit domainweiter Delegierung authentifizieren. |
Die Bereiche in den vorherigen Tabellen geben ihre Sensibilität gemäß den folgenden Definitionen an:
Nicht vertraulich: Diese Bereiche ermöglichen 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 gewähren Ihrer App Zugriff auf die Google-Daten eines bestimmten Nutzers, nachdem Sie die Autorisierung des Nutzers erhalten haben. Sie müssen eine zusätzliche App-Überprüfung durchlaufen. Informationen zu dieser Anforderung finden Sie unter Schritte für Anwendungen, die vertrauliche Bereiche anfordern.
Eingeschränkt: Diese Bereiche gewähren umfassenden Zugriff auf Google-Nutzerdaten. Sie müssen die Überprüfung für eingeschränkte Bereiche durchlaufen. Informationen zu dieser Anforderung finden Sie unter Google API-Dienste: Richtlinie zu Nutzerdaten und Zusätzliche Anforderungen für bestimmte API-Bereiche. Weitere Informationen finden Sie unter Vorgehensweise für Apps, die eingeschränkte Zugriffsbereiche 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, wie sich Chat-Apps mit der Chat API authentifizieren und autorisieren können:
- Nutzerauthentifizierung
- Mit der Nutzerauthentifizierung kann eine Chat-App auf Nutzerdaten zugreifen und im Namen eines Nutzers Aktionen ausführen. OAuth-Bereiche geben die autorisierten Daten und Aktionen an. Wenn die Chat-App zum ersten Mal eine Aktion im Namen eines Nutzers ausführt, muss der Nutzer die Chat-App über den OAuth-Zustimmungsbildschirm autorisieren, es sei denn, die Chat-App wurde vom Administrator installiert oder domainweite Delegierung erhalten.
- App-Authentifizierung
Mit der App-Authentifizierung kann eine Chat-App Dienstkonto-Anmeldedaten verwenden, auf Daten zugreifen und Aktionen ausführen. Da die Chat-App eigene Anmeldedaten für den Zugriff auf Ressourcen und die Arbeit mit Ressourcen verwendet, müssen Endnutzer die API-Aufrufe der Chat-App nicht genehmigen. Sie können dem OAuth-Zustimmungsbildschirm keine OAuth-Autorisierungsbereiche hinzufügen, die eine Anwendungsautorisierung unterstützen.
Es gibt zwei Arten von OAuth-Autorisierungsbereichen, die die App-Authentifizierung unterstützen:
https://www.googleapis.com/auth/chat.bot
: Ihre Chat-App kann Google Chat API-Methoden aufrufen, die diesen Autorisierungsbereich unterstützen, um Ressourcen zu erstellen, zu aktualisieren, abzurufen, aufzulisten oder zu löschen, auf die sie Zugriff hat, z. B. Nachrichten in Gruppenbereichen, die Endnutzer Ihrer Chat-App hinzufügen. Ihre Chat-App kann sich diesen Autorisierungsbereich selbst gewähren, keine Administrator- oder Endnutzerautorisierung erforderlich.https://www.googleapis.com/auth/chat.app.*
(Entwicklervorschau): Die Verwendung dieser Bereiche erfordert eine einmalige Administratorgenehmigung. Dazu müssen Sie das Dienstkonto der Chat-App auf die Administratorgenehmigung vorbereiten. Dazu erstellen Sie einen mit Google Workspace Marketplace kompatiblen OAuth-Client und konfigurieren die App im Google Workspace Marketplace SDK. Mit diesen Bereichen kann die Chat-App bestimmte Google Chat API-Methoden aufrufen. Mitchat.app.spaces.create
können Apps beispielsweise Google Chat-Gruppenbereiche erstellen.
Wenn eine Methode sowohl die Nutzer- als auch die App-Authentifizierung unterstützt, gibt die Chat API je nach verwendetem Authentifizierungstyp unterschiedliche Ergebnisse zurück:
- Bei der App-Authentifizierung geben die Methoden nur Ressourcen zurück, auf die die Chat-App zugreifen kann.
- Bei der Nutzerauthentifizierung geben die Methoden nur Ressourcen zurück, auf die der Nutzer zugreifen kann.
Wenn Sie beispielsweise die Methode spaces.list()
mit App-Autorisierung aufrufen, wird die Liste der Gruppenbereiche zurückgegeben, in denen die Chat-App Mitglied ist.
Wenn Sie spaces.list()
mit Nutzerautorisierung aufrufen, wird eine Liste der Gruppenbereiche zurückgegeben, in denen der Nutzer Mitglied ist. In der Praxis können Sie je nach Design und Funktionen Ihrer Chat-App beide Arten der Authentifizierung verwenden, wenn Sie die Chat API aufrufen.
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 |
Bei der Nutzerauthentifizierung:
|
|||
Gruppenbereich einrichten | – |
Mit Nutzerauthentifizierung:
|
||
Gruppenbereich erhalten |
Mit Nutzerauthentifizierung:
|
|||
Gruppenbereiche auflisten |
Mit Nutzerauthentifizierung:
|
|||
Suchbereiche | – |
Bei der Nutzerauthentifizierung mit Administratorberechtigungen:
|
||
Gruppenbereich aktualisieren |
Bei der Nutzerauthentifizierung:
|
|||
Gruppenbereiche löschen |
Bei der Nutzerauthentifizierung:
|
|||
Import für einen Gruppenbereich abschließen | – |
Bei der Nutzerauthentifizierung:
|
||
Direktnachrichten finden |
Mit Nutzerauthentifizierung:
|
|||
Mitglieder | ||||
Mitglied erstellen |
Mit Nutzerauthentifizierung:
|
|||
Mitglied werden |
Bei der Nutzerauthentifizierung:
|
|||
Listenmitglieder |
Mit Nutzerauthentifizierung:
|
|||
Mitglied löschen |
Bei der Nutzerauthentifizierung:
|
|||
Mitglied aktualisieren |
Mit Nutzerauthentifizierung:
|
|||
Nachrichten | ||||
Nachricht erstellen |
Bei der Nutzerauthentifizierung:
|
|||
Nachricht erhalten |
Bei der Nutzerauthentifizierung:
|
|||
Nachrichten auflisten | – |
Bei der Nutzerauthentifizierung:
|
||
Nachricht aktualisieren |
Bei der Nutzerauthentifizierung:
|
|||
Nachricht löschen |
Mit Nutzerauthentifizierung:
|
|||
Reaktionen | ||||
Reaktion erstellen | – |
Mit Nutzerauthentifizierung:
|
||
Reaktionen auflisten | – |
Bei der Nutzerauthentifizierung:
|
||
Reaktionen löschen | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis | ||||
Benutzerdefiniertes Emoji erstellen | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis löschen | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis erhalten | – |
Bei der Nutzerauthentifizierung:
|
||
Liste benutzerdefinierter Emojis | – |
Bei der Nutzerauthentifizierung:
|
||
Medien und Anhänge | ||||
Medien als Anhang hochladen | – |
Bei der Nutzerauthentifizierung:
|
||
Medien herunterladen |
Mit Nutzerauthentifizierung:
|
|||
Nachrichtenanhang abrufen | – |
Mit App-Authentifizierung:
|
||
Lesestatus des Nutzers | ||||
Lesestatus eines Nutzers für einen Gruppenbereich abrufen | – |
Mit Nutzerauthentifizierung:
|
||
Lesestatus des Gruppenbereichs eines Nutzers aktualisieren | – |
Mit Nutzerauthentifizierung:
|
||
Thread-Lesestatus eines Nutzers abrufen | – |
Bei der Nutzerauthentifizierung:
|
||
Einstellungen für den Nutzerbereich | ||||
Benachrichtigungseinstellungen für den Gruppenbereich eines Nutzers abrufen | – |
Mit Nutzerauthentifizierung:
|
||
Benachrichtigungseinstellungen für Gruppenbereiche eines Nutzers aktualisieren | – |
Bei der Nutzerauthentifizierung:
|
||
Weltraumereignisse | ||||
Gruppenbereichsereignisse abrufen | – |
Bei der Nutzerauthentifizierung müssen Sie einen Bereich verwenden, der auf dem
Ereignistyp basiert:
|
||
Gruppenbereichsereignisse auflisten | – |
Bei der Nutzerauthentifizierung müssen Sie für jeden in der Anfrage enthaltenen
Ereignistyp einen Bereich verwenden:
|
Für Ereignisse in der Chat-App
In der folgenden Tabelle sind gängige Interaktionsmethoden von Nutzern mit Chat-Apps aufgeführt. Außerdem wird angegeben, ob eine Authentifizierung erforderlich oder unterstützt wird:
Szenario | Keine Authentifizierung erforderlich | Nutzerauthentifizierung wird unterstützt | App-Authentifizierung wird unterstützt | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nachrichten von folgenden Personen empfangen: |
|
|||||||||||||||
So antworten Sie auf Nachrichten: |
|
|||||||||||||||
Neue Nachrichten senden: |
|
Weitere Informationen
- Eine Übersicht über die Authentifizierung und Autorisierung in Google Workspace finden Sie unter 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 zur Verwendung von OAuth 2.0 in Google APIs finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.
- Richten Sie die Authentifizierung und Autorisierung mit Nutzeranmeldedaten oder einem Dienstkonto ein.