Authentifizierung und Autorisierung sind Mechanismen, mit denen die Identität bzw. der Zugriff auf Ressourcen überprüft wird. In diesem Dokument wird beschrieben, wie Authentifizierung und Autorisierung für Chat-Apps und Chat API-Anfragen funktionieren.
Prozessübersicht
Das folgende Diagramm zeigt die allgemeinen Schritte der Authentifizierung und Autorisierung für Google Chat:
Google Cloud-Projekt konfigurieren, Chat API aktivieren und 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.
Chat API aufrufen:Wenn Ihre App die Chat API aufruft, werden Anmeldedaten an die Chat API gesendet. 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 App als Nutzer authentifiziert wird, zeigt Google einen OAuth-Zustimmungsbildschirm an, damit der Nutzer entscheiden kann, ob er Ihrer App Zugriff auf die angeforderten Daten gewähren möchte. 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 zu erhalten.
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.
Auf angeforderte Ressourcen zugreifen:Ihre App verwendet das Zugriffstoken von Google, um die Chat API aufzurufen und auf Chat API-Ressourcen zuzugreifen.
Aktualisierungstoken abrufen (optional): Wenn Ihre App über die Lebensdauer eines einzelnen 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 Ihre App mehr Zugriff benötigt, wird der Nutzer aufgefordert, neue Zugriffsbereiche zu gewähren. Dies führt zu einer neuen Anfrage, um ein Zugriffstoken abzurufen (Schritte 3 bis 6).
Wann für Chat-Apps eine Authentifizierung erforderlich ist
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.
Für Chat-Apps ist keine Authentifizierung erforderlich, um auf eine Nutzerinteraktion zu reagieren, es sei denn, die Chat-App ruft beim Verarbeiten 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 Reaktionen auf Nutzerinteraktionen ist keine Authentifizierung erforderlich
Google Chat-Apps müssen sich nicht als Nutzer oder Chat-App authentifizieren, um Interaktionsereignisse zu empfangen und synchron darauf zu reagieren.
Google Chat-Apps erhalten 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.
- 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 Sequenz wird für jedes Interaktionsereignis in der Chat-App wiederholt.
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.
- Poste eine Nachricht im Chatbereich, um Details zur Störung anzugeben.
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-Rezensenten angezeigt werden. Registrieren Sie dann Ihre App, damit Sie sie später veröffentlichen können.
Um die Zugriffsebene für Ihre App zu definieren, müssen Sie Autorisierungsbereiche angeben. Ein Autorisierungsbereich ist ein OAuth 2.0-URI-String, der den Namen der Google Workspace-App, die Art der Daten, auf die zugegriffen wird, und die Zugriffsebene enthält.
Nicht vertrauliche Bereiche
Umfangscode | Beschreibung |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Ermöglicht es Chat-Apps, Chats aufzurufen 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
|
Unterhaltungen und Gruppenbereiche in Google Chat erstellen sowie Metadaten (einschließlich Verlaufs- und Zugriffseinstellungen) abrufen 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 aufrufen |
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 aufrufen. |
https://www.googleapis.com/auth/chat.messages.create
|
Nachrichten in Google Chat schreiben und versenden |
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
|
Fügen Sie einer Nachricht in Google Chat Reaktionen hinzu. |
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
|
Letzte Zuletzt-gelesen-Zeit für Google Chat-Unterhaltungen ansehen und ändern |
https://www.googleapis.com/auth/chat.users.readstate.readonly
|
„Zuletzt gelesen“-Zeit für Google Chat-Unterhaltungen abrufen |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
In Google Chat Chats und Gruppenbereiche aufrufen, die der Domain des Administrators gehören. |
https://www.googleapis.com/auth/chat.admin.spaces
|
Chats und Gruppenbereiche, die der Domain des Administrators zugewiesen sind, in Google Chat aufrufen oder bearbeiten. |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
Mitglieder und Manager in Unterhaltungen abrufen, die der Domain des Administrators in Google Chat gehören |
https://www.googleapis.com/auth/chat.admin.memberships
|
Mitglieder und Manager in Unterhaltungen der Domain des Administrators in Google Chat abrufen, 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 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.app.spaces.create
|
Neue Unterhaltungen und Gruppenbereiche in Google Chat erstellen Administratorgenehmigung erforderlich In diesem Bereich wird nur die App-Authentifizierung mit Dienstkonten unterstützt. Sie können sich mit diesem Gültigkeitsbereich nicht mit Nutzeranmeldedaten oder mit domainweiter Delegierung authentifizieren. |
https://www.googleapis.com/auth/chat.app.memberships
|
Mitglieder in Google Chat-Unterhaltungen und ‑Gruppenbereichen abrufen, 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 Nutzerbereich in Google Chat aufrufen und aktualisieren
Siehe APIs für die Nutzereinstellungen von Gruppenbereichen: getSpaceNotificationSetting, updateSpaceNotificationSetting |
Eingeschränkter Geltungsbereich
Umfangscode | 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
|
Nachrichten abrufen, verfassen, senden, aktualisieren und löschen sowie Reaktionen auf Nachrichten hinzufügen, abrufen und löschen. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Nachrichten und Reaktionen in Google Chat aufrufen |
https://www.googleapis.com/auth/chat.admin.delete
|
Unterhaltungen und Gruppenbereiche, die der Domain des Administrators zugewiesen sind, löschen und den Zugriff auf zugehörige Dateien in Google Chat entfernen |
https://www.googleapis.com/auth/chat.app.delete
|
In Google Chat Unterhaltungen und Gruppenbereiche löschen sowie den Zugriff auf verknüpfte Dateien 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. |
Die Bereiche in den vorherigen Tabellen geben ihre Sensibilität gemäß den folgenden Definitionen an:
Nicht sensibel: Diese Bereiche bieten den geringsten Autorisierungszugriff und erfordern nur eine grundlegende App-Überprüfung. Weitere Informationen zu dieser Anforderung finden Sie unter Vorbereitung auf die Bestätigung.
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. Weitere Informationen zu dieser Anforderung finden Sie unter Vorgehensweise für Apps, die sensible 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. Weitere Informationen zu dieser Anforderung finden Sie in der Nutzerdatenrichtlinie für Google API-Dienste und in den zusätzlichen Anforderungen für bestimmte API-Bereiche. Weitere Informationen finden Sie unter Vorgehensweise für Apps, die eingeschränkte Zugriffsbereiche anfordern.
Wenn Ihre App Zugriff auf andere Google APIs benötigt, können Sie auch diese Bereiche hinzufügen. Weitere Informationen zu Google API-Bereichen finden Sie im Hilfeartikel 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.
Arten der erforderlichen Authentifizierung
Es gibt zwei Möglichkeiten, wie Chat-Apps sich mit der Chat API authentifizieren und autorisieren können:
- Nutzerauthentifizierung
- Nutzerauthentifizierung: Damit kann eine Chat-App auf Nutzerdaten zugreifen und Aktionen im Namen eines Nutzers ausführen. OAuth-Bereiche geben die autorisierten Daten und Aktionen an. Sofern die Chat-App nicht vom Administrator installiert oder domainweit delegiert wurde, muss der Nutzer die Chat-App über den OAuth-Zustimmungsbildschirm autorisieren, wenn die Chat-App zum ersten Mal eine Aktion im Namen des Nutzers ausführt.
- App-Authentifizierung
Mit der App-Authentifizierung kann eine Chat-App Dienstkonto-Anmeldedaten verwenden, auf Daten zugreifen und Aktionen als sich selbst ausführen. Da die Chat App ihre eigenen Anmeldedaten zum Zugriff auf Ressourcen und zur Arbeit mit ihnen verwendet, müssen Endnutzer die API-Aufrufe der Chat App nicht genehmigen. Außerdem können Sie dem OAuth-Einwilligungsbildschirm keine OAuth-Autorisierungsbereiche hinzufügen, die die App-Autorisierung 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 diesen Autorisierungsbereich selbst gewähren, ohne dass eine Administrator- oder Endnutzerautorisierung erforderlich ist.https://www.googleapis.com/auth/chat.app.*
(Vorabversion für Entwickler): Für die Verwendung dieser Bereiche ist eine einmalige Administratorgenehmigung erforderlich. Damit Sie die Administratorgenehmigung erhalten, müssen Sie das Dienstkonto der Chat-App für 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 Ihre 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 Authentifizierungstypen beim Aufrufen der Chat API verwenden.
Für asynchrone Chat API-Aufrufe
In der folgenden Tabelle sind die Chat API-Methoden und die 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 | – |
Bei der Nutzerauthentifizierung:
|
||
Gruppenbereich erhalten |
Bei der Nutzerauthentifizierung:
|
|||
Gruppenbereiche auflisten |
Bei der Nutzerauthentifizierung:
|
|||
Suchbereiche | – |
Bei der Nutzerauthentifizierung mit Administratorberechtigungen:
|
||
Gruppenbereich aktualisieren |
Bei der Nutzerauthentifizierung:
|
|||
Gruppenbereich löschen |
Bei der Nutzerauthentifizierung:
|
|||
Importvorgang für einen Gruppenbereich abschließen | – |
Bei der Nutzerauthentifizierung:
|
||
Direktnachrichten finden |
Bei der Nutzerauthentifizierung:
|
|||
Mitglieder | ||||
Mitglied erstellen |
Bei der Nutzerauthentifizierung:
|
|||
Mitglied werden |
Bei der Nutzerauthentifizierung:
|
|||
Mitglieder auflisten |
Bei der Nutzerauthentifizierung:
|
|||
Mitglied löschen |
Bei der Nutzerauthentifizierung:
|
|||
Mitglied aktualisieren |
Bei der 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 |
Bei der Nutzerauthentifizierung:
|
|||
Reaktionen | ||||
Reaktion erstellen | – |
Bei der Nutzerauthentifizierung:
|
||
Reaktionen auflisten | – |
Bei der Nutzerauthentifizierung:
|
||
Reaktionen löschen | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis | ||||
Benutzerdefinierte Emojis erstellen | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis löschen | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis auflisten | – |
Bei der Nutzerauthentifizierung:
|
||
Medien und Anhänge | ||||
Medien als Anhang hochladen | – |
Bei der Nutzerauthentifizierung:
|
||
Medien herunterladen |
Bei der Nutzerauthentifizierung:
|
|||
Anhang einer Nachricht abrufen | – |
Bei der App-Authentifizierung:
|
||
Lesestatus von Nutzern | ||||
Lesestatus eines Nutzers für einen Gruppenbereich abrufen | – |
Bei der Nutzerauthentifizierung:
|
||
Lesestatus eines Nutzers für einen Gruppenbereich aktualisieren | – |
Bei der Nutzerauthentifizierung:
|
||
Lesestatus eines Threads für einen Nutzer abrufen | – |
Bei der Nutzerauthentifizierung:
|
||
Einstellungen für den Nutzerbereich | ||||
Benachrichtigungseinstellung für Gruppenbereiche eines Nutzers abrufen | – |
Bei der Nutzerauthentifizierung:
|
||
Benachrichtigungseinstellungen für Gruppenbereiche eines Nutzers aktualisieren | – |
Bei der Nutzerauthentifizierung:
|
||
Weltraumereignisse | ||||
Gruppenbereichsereignisse abrufen | – |
Bei der Nutzerauthentifizierung müssen Sie einen Umfang basierend auf dem
Ereignistyp verwenden:
|
||
Gruppenbereichsereignisse auflisten | – |
Bei der Nutzerauthentifizierung müssen Sie für jeden
Ereignistyp in der Anfrage einen Bereich angeben:
|
Für Interaktionsereignisse von Chat-Apps
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: |
|
|||||||||||||||
Auf Nachrichten antworten: |
|
|||||||||||||||
Neue Nachrichten senden: |
|
Weitere Informationen
- Eine Übersicht über die Authentifizierung und Autorisierung in Google Workspace finden Sie unter Authentifizierung und Autorisierung.
- Eine Übersicht über 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.