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, 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 sich Ihre Anwendung mit einem Dienstkonto authentifiziert, werden die Anmeldedaten als Teil des Anwendungscodes 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 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 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.
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 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 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 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
Asynchrone Nachrichten treten auf, wenn eine Chat-App eine Anfrage an die Chat API sendet, wofür eine Authentifizierung und Autorisierung erforderlich ist.
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-Prüfern angezeigt werden. Registrieren Sie dann Ihre App für die spätere Veröffentlichung.
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. 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. |
Sensible Bereiche
Bereichscode | 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 aufrufen, 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 zugewiesen sind. |
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 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 in Google Chat gehören, 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 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.spaces.create
|
Neue Unterhaltungen und Gruppenbereiche in Google Chat erstellen 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.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. Mit diesem Bereich können Sie sich nicht mit Nutzeranmeldedaten oder mit der domainweiten 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ä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
|
Unterhaltungen und Gruppenbereiche löschen sowie den Zugriff auf verknüpfte Dateien in Google Chat entfernen 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. |
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. 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 bieten einen umfassenden Zugriff auf Google-Nutzerdaten und Sie müssen den Überprüfungsprozess für den eingeschränkten Bereich 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. 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 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. Beispielsweise ermöglichtchat.app.spaces.create
Apps, Chatbereiche zu 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 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 | – |
Mit Nutzerauthentifizierung:
|
||
Gruppenbereich anfordern |
Bei der Nutzerauthentifizierung:
|
|||
Gruppenbereiche auflisten |
Bei der Nutzerauthentifizierung:
|
|||
Suchbereiche | – |
Mit der Nutzerauthentifizierung und Administratorberechtigungen:
|
||
Gruppenbereich aktualisieren |
Bei der Nutzerauthentifizierung:
|
|||
Gruppenbereich löschen |
Bei der Nutzerauthentifizierung:
|
|||
Importvorgang für einen Gruppenbereich abschließen | – |
Bei der Nutzerauthentifizierung:
|
||
Direktnachrichten finden |
Mit Nutzerauthentifizierung:
|
|||
Mitglieder | ||||
Mitglied erstellen |
Bei der Nutzerauthentifizierung:
|
|||
Mitglied werden |
Bei der Nutzerauthentifizierung:
|
|||
Listenmitglieder |
Bei der Nutzerauthentifizierung:
|
|||
Mitglied löschen |
Bei der Nutzerauthentifizierung:
|
|||
Mitglieder 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 |
Mit Nutzerauthentifizierung:
|
|||
Reaktionen | ||||
Reaktion erstellen | – |
Bei der Nutzerauthentifizierung:
|
||
Reaktionen auflisten | – |
Mit Nutzerauthentifizierung:
|
||
Reaktionen löschen | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis | ||||
Benutzerdefiniertes Emoji erstellen | – |
Bei der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis löschen | – |
Mit 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 des Gruppenbereichs eines Nutzers abrufen | – |
Bei der Nutzerauthentifizierung:
|
||
Lesestatus des Gruppenbereichs eines Nutzers 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 | – |
Mit Nutzerauthentifizierung:
|
||
Benachrichtigungseinstellungen für Gruppenbereiche eines Nutzers aktualisieren | – |
Bei der Nutzerauthentifizierung:
|
||
Weltraumereignisse | ||||
Veranstaltungen aus dem Weltraum erhalten | – |
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 Interaktionsereignisse von Chat-Apps
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 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 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.