Authentifizierung und Autorisierung sind Mechanismen, mit denen die Identität bzw. der Zugriff auf Ressourcen überprüft wird. In diesem Dokument werden wichtige Begriffe erläutert, die Sie kennen sollten, bevor Sie Authentifizierung und Autorisierung in Ihrer App implementieren.
Bei der Authentifizierung wird festgestellt, wer die Anfrage stellt. Bei der Autorisierung wird festgelegt, auf welche Ressourcen der Antragsteller zugreifen kann und welche Zugriffsebene er hat. Die Authentifizierung ist eine Voraussetzung für die Autorisierung. Sie können nicht festlegen, auf welche Ressourcen zugegriffen werden soll, ohne zuerst die Identität des Anfragenden zu ermitteln. Eine ausführlichere Definition finden Sie im Abschnitt Wichtige Begriffe.
Betrachten Sie das folgende vereinfachte Beispiel für eine Hotelreservierung. Bei Ihrer Ankunft im Hotel bittet Sie die Rezeptionistin um Ihren Ausweis, um Ihre Reservierung zu bestätigen. Mit Ihrem Ausweis authentifizieren Sie sich im Hotel. Die Rezeptionistin gibt Ihnen einen Hotelschlüssel. Mit diesem Schlüssel erhalten Sie Zugang zu bestimmten Ressourcen im Hotel, z. B. zu Ihrem Hotelzimmer, zum Fitnessraum und zum Business Center. Der Hotelschlüssel autorisiert Sie für den Zugriff auf diese Ressourcen.
Prozessübersicht
Das folgende Diagramm zeigt die allgemeinen Schritte der Authentifizierung und Autorisierung für Google Workspace APIs:
Google Cloud-Projekt und ‑App konfigurieren:Während der Entwicklung registrieren Sie Ihre App in der Google Cloud Console und definieren Autorisierungsbereiche und Zugriffsdaten, um Ihre App mit einem API-Schlüssel, Endnutzeranmeldedaten oder Dienstkontoanmeldedaten zu authentifizieren.
Authentifizieren Sie Ihre App für den Zugriff:Wenn Ihre App ausgeführt wird, werden die registrierten Anmeldedaten für den Zugriff ausgewertet. Wenn Ihre App sich als Endnutzer authentifiziert, wird möglicherweise eine Anmeldeaufforderung angezeigt.
Ressourcen anfordern:Wenn Ihre App Zugriff auf Google-Ressourcen benötigt, fragt sie Google mit den zuvor registrierten Zugriffsbereichen.
Einwilligung des Nutzers einholen:Wenn Ihre App als Endnutzer authentifiziert wird, zeigt Google den OAuth-Zustimmungsbildschirm an, damit der Nutzer entscheiden kann, ob er Ihrer App Zugriff auf die angeforderten Daten gewähren möchte.
Genehmigte Anfrage für Ressourcen senden:Wenn der Nutzer den Zugriffsbereichen zustimmt, bündelt Ihre App die Anmeldedaten und die vom Nutzer genehmigten Zugriffsbereiche 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 Zugriffsbereiche. Wenn die zurückgegebene Liste der Zugriffsbereiche eingeschränkter ist als die angeforderten Zugriffsbereiche, deaktiviert Ihre App alle Funktionen, die durch das Token eingeschränkt sind.
Auf angeforderte Ressourcen zugreifen:Ihre App verwendet das Zugriffstoken von Google, um die entsprechenden APIs aufzurufen und auf die Ressourcen zuzugreifen.
Aktualisierungstoken abrufen (optional): Wenn Ihre App über die Lebensdauer eines einzelnen Zugriffstokens hinaus auf eine Google API zugreifen muss, kann sie ein Aktualisierungstoken abrufen.
Weitere Ressourcen anfordern:Wenn zusätzlicher Zugriff erforderlich ist, wird der Nutzer von Ihrer App aufgefordert, neue Zugriffsbereiche zu gewähren. Dies führt zu einer neuen Anfrage, um ein Zugriffstoken abzurufen (Schritte 3–6).
Wichtige Begriffe
Im Folgenden finden Sie eine Liste von Begriffen im Zusammenhang mit Authentifizierung und Autorisierung:
- Authentifizierung
Der Vorgang, der sicherstellt, dass ein Nutzerkonto, das ein Nutzer oder eine App sein kann, die im Namen eines Nutzers handelt, tatsächlich der ist, der er vorgibt zu sein. Wenn Sie Google Workspace-Apps entwickeln, sollten Sie sich mit den folgenden Authentifizierungstypen vertraut machen:
- Nutzerauthentifizierung
- Die Authentifizierung (Anmeldung) eines Nutzers in Ihrer App. Die Nutzerauthentifizierung erfolgt in der Regel über einen Anmeldevorgang, bei dem der Nutzer mit einer Kombination aus Nutzername und Passwort seine Identität in der App bestätigt. Die Nutzerauthentifizierung kann mit Über Google anmelden in eine App eingebunden werden.
- App-Authentifizierung
- Der Vorgang, bei dem sich eine App im Namen des Nutzers, der die App ausführt, direkt bei Google-Diensten authentifiziert. Die App-Authentifizierung erfolgt in der Regel mit vorab erstellten Anmeldedaten im Code Ihrer App.
- Autorisierung
Die Berechtigungen oder „Autorisierungen“, die das Prinzipal zum Zugriff auf Daten oder zum Ausführen von Vorgängen hat. Die Autorisierung erfolgt über Code, den Sie in Ihrer App schreiben. Dieser Code informiert den Nutzer darüber, dass die App in seinem Namen handeln möchte, und verwendet, sofern zulässig, die eindeutigen Anmeldedaten Ihrer App, um ein Zugriffstoken von Google abzurufen, das zum Zugriff auf Daten oder zum Ausführen von Vorgängen verwendet wird.
- Anmeldedaten
Eine Form der Identifizierung, die in der Softwaresicherheit verwendet wird. Bei der Authentifizierung sind Anmeldedaten häufig eine Kombination aus Nutzername und Passwort. Im Hinblick auf die Autorisierung für Google Workspace APIs sind Anmeldedaten in der Regel eine Art von Identitätsnachweis, z. B. ein eindeutiger geheimer String, der nur dem App-Entwickler und dem Authentifizierungsserver bekannt ist. Google unterstützt folgende Authentifizierungsanmeldedaten: API-Schlüssel, OAuth 2.0-Client-ID und Dienstkonten.
- API-Schlüssel
- Die Anmeldedaten, die für den Zugriff auf öffentliche Daten verwendet werden, z. B. Daten, die über die Maps API bereitgestellt werden, oder Google Workspace-Dateien, die über die Freigabeeinstellung „Jeder im Internet mit diesem Link“ freigegeben wurden.
- OAuth 2-Client-ID
- Die Anmeldedaten, mit denen der Zugriff auf nutzereigene Daten angefordert wird. Dies sind die primären Anmeldedaten, die beim Anfordern von Zugriff auf Daten mit Google Workspace APIs verwendet werden. Für diese Anmeldedaten ist die Einwilligung des Nutzers erforderlich.
- Clientschlüssel
- Ein Zeichenstring, der nur Ihrer Anwendung und dem Autorisierungsserver bekannt sein sollte. Das Client-Secret schützt die Daten des Nutzers, indem nur autorisierten Anfragenden Tokens gewährt werden. Sie sollten Ihren unverschlüsselten Clientschlüssel niemals in Ihrer App einfügen. Wir empfehlen, den Clientschlüssel sicher zu speichern. Weitere Informationen finden Sie unter Clientanmeldedaten sicher verarbeiten.
- Dienstkontoschlüssel
- Wird von Dienstkonten verwendet, um eine Autorisierung für einen Google-Dienst zu erhalten.
- Dienstkonto
- Anmeldedaten, die für Server-zu-Server-Interaktionen verwendet werden, z. B. eine App ohne Benutzeroberfläche, die als Prozess ausgeführt wird, um auf Daten zuzugreifen oder einen Vorgang auszuführen. Dienstkonten werden in der Regel für den Zugriff auf cloudbasierte Daten und Vorgänge verwendet. In Kombination mit der domainweiten Delegierung von Befugnissen können sie jedoch verwendet werden, um auf Nutzerdaten zuzugreifen.
- Ebene
Ein OAuth 2.0-URI-String, der die Zugriffsebene auf Ressourcen oder Aktionen definiert, die einer App gewährt werden. Bei Google Workspace enthalten URIs für den Autorisierungsbereich den Namen der Google Workspace-App, die Art der Daten, auf die zugegriffen wird, und die Zugriffsebene. Nutzer Ihrer App können die angeforderten Berechtigungen prüfen und auswählen, welchen Zugriff sie gewähren möchten. Der Authentifizierungsserver von Google gibt dann die zulässigen Berechtigungen in einem Zugriffstoken an Ihre App zurück. Weitere Informationen finden Sie unter Bereiche für Ihre App auswählen.
- Autorisierungsserver
Der Server von Google, über den mithilfe eines Zugriffstokens Zugriff auf die angeforderten Daten und Vorgänge einer App gewährt wird.
- Autorisierungscode
Ein Code, der vom Autorisierungsserver gesendet wird, um ein Zugriffstoken abzurufen. Ein Code ist nur erforderlich, wenn es sich bei Ihrem Anwendungstyp um eine Webanwendung oder eine installierte App handelt.
- Zugriffstoken
Ein Token, das Zugriff auf eine Google Workspace API gewährt. Ein einzelnes Zugriffstoken kann unterschiedlichen Zugriff auf mehrere APIs gewähren, was als Zugriffsbereich bezeichnet wird. Der Autorisierungscode Ihrer App fordert Zugriffstokens an und verwendet sie, um Google Workspace APIs aufzurufen.
- Ressourcenserver
Der Server, auf dem die API gehostet wird, die Ihre App aufrufen soll.
- OAuth 2.0-Framework
Ein Standard, mit dem Ihre App einen „sicheren delegierten Zugriff“ oder Zugriff auf Daten und Vorgänge im Namen des Nutzers der App erhalten kann. Die Authentifizierungs- und Autorisierungsmechanismen, die Sie in Ihrer App verwenden, stellen Ihre Implementierung des OAuth 2.0-Frameworks dar.
- Hauptkonto
Eine Entität, die auch als Identität bezeichnet wird und der Zugriff auf eine Ressource gewährt werden kann. Google Workspace APIs unterstützen zwei Arten von Hauptkonten: Nutzerkonten und Dienstkonten. Weitere Informationen finden Sie unter Hauptkonten.
- Datentyp
Im Zusammenhang mit Authentifizierung und Autorisierung bezieht sich der Datentyp auf die Entität, der die Daten gehören, auf die Ihre App zugreifen möchte. Es gibt drei Datentypen:
- Urheberrechtsfreie Daten
- Daten, auf die jeder zugreifen kann, z. B. einige Google Maps-Daten. Normalerweise wird auf diese Daten mit einem API-Schlüssel zugegriffen.
- Endnutzerdaten
- Daten, die zu einem bestimmten Endnutzer oder einer bestimmten Gruppe gehören, z. B. die Google Drive-Dateien eines bestimmten Nutzers. Normalerweise wird auf diesen Datentyp mit einer OAuth 2-Client-ID oder einem Dienstkonto zugegriffen.
- Cloud-Daten
- Daten, die zu einem Google Cloud-Projekt gehören. Auf diesen Datentyp wird in der Regel über ein Dienstkonto zugegriffen.
- Nutzereinwilligung
Ein Autorisierungsschritt, bei dem der Nutzer Ihrer App die App autorisieren muss, auf Daten zuzugreifen und im Namen des Nutzers Vorgänge auszuführen.
- Anwendungstyp
Die Art der App, die Sie erstellen möchten. Wenn Sie Anmeldedaten mit der Google Cloud Console erstellen, werden Sie aufgefordert, den Anwendungstyp auszuwählen. Es gibt folgende Anwendungstypen: Webanwendung (JavaScript), Android, Chrome-App, iOS, Fernseher und Geräte mit eingeschränkter Eingabe, Desktopanwendung (auch als „installierte App“ bezeichnet) und Universal Windows Platform (UWP).
- Dienstkonto
Eine spezielle Art von Google-Konto, das einen nicht menschlichen Nutzer repräsentiert. Es muss authentifiziert und autorisiert werden, um Zugriff auf Daten zu erhalten. Ihre Anwendung nimmt beim Aufrufen der Google APIs die Identität des Dienstkontos an, sodass die Nutzer nicht direkt beteiligt sind. Dienstkonten können nicht allein zum Zugriff auf Nutzerdaten verwendet werden, auf die normalerweise über Workspace APIs zugegriffen wird. Ein Dienstkonto kann jedoch auf Nutzerdaten zugreifen, wenn domainweite Befugnisse delegiert werden. Weitere Informationen finden Sie unter Details zu Dienstkonten.
- Domainweite Übertragung von Befugnissen
Eine Verwaltungsfunktion, mit der eine Anwendung zum Zugriff auf Nutzerdaten im Namen von Nutzern in der Google Workspace-Organisation autorisiert werden kann. Mit der domainweiten Delegierung können Sie administratorbezogene Aufgaben für Nutzerdaten ausführen. Um Befugnisse auf diese Weise zu delegieren, verwenden Google Workspace-Administratoren Dienstkonten mit OAuth 2.0. Aufgrund der Leistungsfähigkeit dieser Funktion können nur Super Admins die domainweite Delegierung von Berechtigungen aktivieren. Weitere Informationen finden Sie unter Domainweite Befugnisse an ein Dienstkonto delegieren.
Nächster Schritt
Konfigurieren Sie den OAuth-Zustimmungsbildschirm Ihrer App, damit Nutzer nachvollziehen und genehmigen können, welchen Zugriff Ihre App auf ihre Daten hat.