Authentifizierung und Autorisierung sind Mechanismen zur Überprüfung der Identität und Zugriff auf Ressourcen. 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 obersten Schritte der Authentifizierung 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. Im Google Cloud-Projekt aktivieren Sie die Chat API, die Chat-App konfigurieren und die Authentifizierung einrichten. Weitere Informationen finden Sie unter Mit Google Workspace entwickeln und Chat-App erstellen.
Call Chat API:Wenn Ihre App die Methode Chat API senden, werden Anmeldedaten zur Authentifizierung an den Chat API Wenn sich Ihre Anwendung mit einem Dienstkonto authentifiziert, werden die Anmeldedaten Teil Ihres App-Codes sein. 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 bittet um Zugriff mit Bereiche die Sie beim Einrichten 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 Ressourcenanfrage senden:Wenn der Nutzer in die werden die Anmeldedaten und die vom Nutzer genehmigten -Bereichen in eine Anfrage ein. Die Anfrage wird an den Autorisierungsserver von Google 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.
Zugriff angeforderter Ressourcen:Ihre App verwendet das Zugriffstoken von Google, um Chat API aufrufen und auf Chat API-Ressourcen zugreifen
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 Antwort auf eine Nutzerinteraktion senden. asynchron programmiert. 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 benötigen keine Authentifizierung, um auf eine Interaktion des Nutzers, es sei denn, die Chat-App ruft die Chat API oder eine andere Google API während der Verarbeitung einer Antwort.
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 eine der Slash-Befehlen.
Das folgende Diagramm zeigt eine Anfrage-Antwort-Sequenz zwischen einer Chat-Nutzer und 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
- Google Chat rendert die Antwort für den Nutzer oder in einem Gruppenbereich.
Diese Sequenz wiederholt sich für jede Chat-App-Interaktion .
Für asynchrone Nachrichten ist eine Authentifizierung erforderlich
Asynchrone Nachrichten treten auf, wenn eine Chat-App eine an den Chat API was eine Authentifizierung und Autorisierung erfordert.
Durch den Aufruf der Chat API können Chat-Apps Nachrichten in Google Chat posten oder Aufgaben erledigen und im Namen eines Nutzers auf Daten zugreifen. Für So kann z. B. eine Chat-App nach einem Serverausfall die Chat API an:
- Erstellen Sie einen Chatbereich für die Untersuchung und Behebung des Ausfall.
- 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 einem Chat-App und ein 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 festzulegen, müssen Sie Autorisierungsbereiche deklarieren 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
Bereichscode | 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. Ich kann sich nicht mit Nutzeranmeldedaten oder mit domainweite Delegierung mit diesem Bereich. |
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 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 Google Chat-Unterhaltungen abrufen |
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
|
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 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. |
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. Ich kann sich nicht mit Nutzeranmeldedaten oder mit domainweite Delegierung mit diesem Bereich. |
https://www.googleapis.com/auth/chat.app.spaces.create
|
Sie können 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 Unterhaltungen und Gruppenbereichen in Google Chat aufrufen, hinzufügen, aktualisieren und entfernen. Erfordert die Genehmigung des Administrators. 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.customemojis
|
Benutzerdefinierte Emojis in Google Chat ansehen, erstellen und löschen. |
Eingeschränkter Geltungsbereich
Umfangscode | Beschreibung |
---|---|
https://www.googleapis.com/auth/chat.delete
|
Unterhaltungen und Gruppenbereiche löschen sowie den Zugriff auf verknüpfte Dateien entfernen in Google Chat. |
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 verknüpfte 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 entfernen in Google Chat. Dafür ist die Administratorgenehmigung erforderlich. In diesem Bereich wird nur die App-Authentifizierung mit Dienstkonten unterstützt. Ich kann sich nicht mit Nutzeranmeldedaten oder mit domainweite Delegierung mit diesem Bereich. |
Die Bereiche in den vorherigen Tabellen geben ihre Sensibilität gemäß den folgenden Definitionen an:
Nicht vertraulich: Diese Umfänge bieten den kleinsten und erfordern nur eine einfache App-Überprüfung. Für Informationen zu dieser Anforderung finden Sie unter Vorbereitung auf .
Vertraulich: Diese Bereiche gewähren Ihrer App Zugriff auf einen bestimmten an die Google-Daten des Nutzers gesendet, nachdem dieser vom Nutzer autorisiert wurde. 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 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 Apps, die eingeschränkte Daten anfordern Bereiche.
Wenn Ihre Anwendung Zugriff auf andere Google APIs benötigt, können Sie diese Bereiche hinzufügen. . Weitere Informationen zu den Google API-Bereichen finden Sie unter OAuth 2.0 für Folgendes verwenden: 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 Ermöglicht einer Chat-App den Zugriff auf Nutzerdaten und das Ausführen von Aktionen im Namen eines Nutzers. OAuth-Bereiche geben die autorisierten Daten und Aktionen an. Es sei denn, die Chat-App war Administrator installiert oder gegeben domainweite Delegierung Google Chat-App führt zum ersten Mal eine Aktion im Namen des Nutzers muss er die Chat-App autorisieren. OAuth-Zustimmungsbildschirm verwenden.
- 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 eigene Anmeldedaten für den Zugriff auf Ressourcen und die Arbeit mit ihnen verwendet, Endanwendende müssen die die API-Aufrufe der Chat-App, und Sie können keine OAuth-Autorisierungsbereiche hinzufügen, die die App-Autorisierung unterstützen. OAuth-Zustimmungsbildschirm.
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. Ihr Die Chat-App kann diesen Autorisierungsbereich selbst gewähren, Es ist keine Administrator- oder Endnutzerautorisierung erforderlich.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, die vom user Zugriff haben.
Wenn Sie beispielsweise die Methode spaces.list()
mit App-Autorisierung aufrufen,
die Liste der Gruppenbereiche, in denen die Chat-App Mitglied ist.
spaces.list()
wird angerufen mit
Die Nutzerautorisierung gibt die Liste der Gruppenbereiche zurück, in denen der Nutzer Mitglied ist. In
können Sie beide Arten von
beim Aufrufen der Chat API, je nach Design
und Funktionen Ihrer Chat-App.
Für asynchrone Chat API-Aufrufe
In der folgenden Tabelle sind die Chat API-Methoden und die unterstützten Methoden aufgeführt. Autorisierungsbereiche:
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 anfordern |
Mit der Nutzerauthentifizierung:
|
|||
Gruppenbereiche auflisten |
Mit der Nutzerauthentifizierung:
|
|||
Suchbereiche | – |
Bei der Nutzerauthentifizierung mit Administratorberechtigungen:
|
||
Gruppenbereiche aktualisieren |
Mit der Nutzerauthentifizierung:
|
|||
Gruppenbereich löschen |
Bei der Nutzerauthentifizierung:
|
|||
Import für einen Gruppenbereich abschließen | – |
Mit der Nutzerauthentifizierung:
|
||
Direktnachrichten suchen |
Bei der Nutzerauthentifizierung:
|
|||
Mitglieder | ||||
Mitglied erstellen |
Bei der Nutzerauthentifizierung:
|
|||
Mitglied werden |
Bei der Nutzerauthentifizierung:
|
|||
Listenmitglieder |
Mit der Nutzerauthentifizierung:
|
|||
Mitglied löschen |
Mit der Nutzerauthentifizierung:
|
|||
Mitglied aktualisieren |
Mit der Nutzerauthentifizierung:
|
|||
Nachrichten | ||||
Nachricht erstellen |
Mit der Nutzerauthentifizierung:
|
|||
Nachricht erhalten |
Mit der Nutzerauthentifizierung:
|
|||
Nachrichten auflisten | – |
Mit der Nutzerauthentifizierung:
|
||
Nachricht aktualisieren |
Mit der Nutzerauthentifizierung:
|
|||
Nachrichten löschen |
Bei der Nutzerauthentifizierung:
|
|||
Reaktionen | ||||
Reaktion erstellen | – |
Mit der Nutzerauthentifizierung:
|
||
Reaktionen auflisten | – |
Mit der Nutzerauthentifizierung:
|
||
Reaktionen löschen | – |
Mit der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis | ||||
Benutzerdefinierte Emojis erstellen | – |
Mit der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis löschen | – |
Mit der Nutzerauthentifizierung:
|
||
Benutzerdefinierte Emojis | – |
Mit der Nutzerauthentifizierung:
|
||
Liste benutzerdefinierter Emojis | – |
Mit der Nutzerauthentifizierung:
|
||
Medien- und Anhänge | ||||
Medien als Dateianhang hochladen | – |
Mit 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 | – |
Mit der Nutzerauthentifizierung:
|
||
Lesestatus eines Threads für einen Nutzer abrufen | – |
Mit der Nutzerauthentifizierung:
|
||
Weltraumereignisse | ||||
Weltraum-Events abrufen | – |
Bei der Nutzerauthentifizierung
müssen Sie einen Bereich verwenden, der auf dem
Ereignistyp:
|
||
Weltraumereignisse auflisten | – |
Bei der Nutzerauthentifizierung
müssen Sie für jede
Ereignistyp in der Anfrage:
|
Für Interaktionsereignisse von Chat-Apps
In der folgenden Tabelle sind häufige Möglichkeiten aufgeführt, wie Nutzer mit Chat-Apps und ob eine Authentifizierung erforderlich ist 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 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.