In diesem Dokument wird erläutert, wie Anwendungen, die auf Geräten wie Smartphones, Tablets und Computern installiert sind, die OAuth 2.0-Endpunkte von Google verwenden, um den Zugriff auf die YouTube Data API zu autorisieren.
OAuth 2.0 ermöglicht Nutzern, bestimmte Daten für eine Anwendung freizugeben, während ihre Nutzernamen, Passwörter und andere Informationen privat bleiben. Eine Anwendung kann beispielsweise OAuth 2.0 verwenden, um die Berechtigung zum Hochladen von Videos auf den YouTube-Kanal eines Nutzers zu erhalten.
Installierte Apps werden auf einzelne Geräte verteilt und es wird davon ausgegangen, dass diese Apps keine Geheimnisse bewahren können. Sie können auf Google APIs zugreifen, während der Nutzer die App verwendet oder wenn die App im Hintergrund ausgeführt wird.
Dieser Autorisierungsvorgang ähnelt dem für Webserveranwendungen. Der Hauptunterschied besteht darin, dass installierte Apps den Systembrowser öffnen und einen lokalen Weiterleitungs-URI angeben müssen, um Antworten vom Autorisierungsserver von Google zu verarbeiten.
Bibliotheken und Beispiele
Für mobile Apps empfehlen wir die Verwendung der aktuellen Version der nativen Google Identity Services-Bibliothek für Android und der nativen Google Log-in-Bibliothek für iOS. Diese Bibliotheken übernehmen die Nutzerautorisierung und sind einfacher zu implementieren als das hier beschriebene Protokoll auf niedrigerer Ebene.
Informationen zu Apps, die auf Geräten ausgeführt werden, die keinen Systembrowser unterstützen oder nur begrenzte Eingabefunktionen haben, z. B. Fernseher, Spielekonsolen, Kameras oder Drucker, finden Sie unter OAuth 2.0 für Fernseher und Geräte oder Anmelden auf Fernsehern und Geräten mit begrenzter Eingabe.
Vorbereitung
Die APIs für Ihr Projekt aktivieren
Für jede Anwendung, die Google APIs aufruft, müssen diese APIs in der API Consoleaktiviert werden.
So aktivieren Sie eine API für Ihr Projekt:
- Open the API Library in der Google API Console.
- If prompted, select a project, or create a new one.
- Die YouTube Data API auf der Seite Bibliothek suchen und aktivieren Suchen Sie nach anderen APIs, die von Ihrer Anwendung verwendet werden, und aktivieren Sie diese ebenfalls.
Anmeldedaten für die Autorisierung erstellen
Für jede Anwendung, die OAuth 2.0 für den Zugriff auf Google APIs verwendet, müssen Autorisierungsanmeldedaten vorhanden sein, mit denen die Anwendung beim OAuth 2.0-Server von Google identifiziert wird. In den folgenden Schritten wird erläutert, wie Sie Anmeldedaten für Ihr Projekt erstellen. Ihre Anwendungen können dann mit den Anmeldedaten auf APIs zugreifen, die Sie für dieses Projekt aktiviert haben.
- Go to the Credentials page.
- Klicken Sie auf Create client.
- In den folgenden Abschnitten werden die Clienttypen beschrieben, die vom Autorisierungsserver von Google unterstützt werden. Wählen Sie den für Ihre Anwendung empfohlenen Clienttyp aus, geben Sie Ihrem OAuth-Client einen Namen und legen Sie die anderen Felder im Formular entsprechend fest.
Android
- Wählen Sie den Anwendungstyp Android aus.
- Geben Sie einen Namen für den OAuth-Client ein. Dieser Name wird auf der Ihres Projekts angezeigt, um den Client zu identifizieren.
- Geben Sie den Paketnamen Ihrer Android-App ein. Dieser Wert wird im
Attribut
package
des Elements<manifest>
in der Manifestdatei Ihrer App definiert. - Geben Sie den SHA-1-Signaturzertifikat-Fingerabdruck der App-Verteilung ein.
- Wenn Ihre App die App-Signatur von Google Play verwendet, kopieren Sie den SHA‑1-Fingerabdruck von der Seite „App-Signatur“ in der Play Console.
- Wenn Sie Ihren eigenen Keystore und Ihre eigenen Signierschlüssel verwalten, können Sie mit dem in Java enthaltenen keytool-Dienstprogramm Zertifikatsinformationen in einem für Menschen lesbaren Format ausgeben. Kopieren Sie den Wert
SHA1
im AbschnittCertificate fingerprints
der keytool-Ausgabe. Weitere Informationen finden Sie in der Dokumentation zu Google APIs für Android unter Client authentifizieren.
- (Optional) Bestätigen Sie die Inhaberschaft Ihrer Android-Anwendung.
- Klicken Sie auf Erstellen.
iOS
- Wählen Sie den Anwendungstyp iOS aus.
- Geben Sie einen Namen für den OAuth-Client ein. Dieser Name wird auf der Ihres Projekts angezeigt, um den Client zu identifizieren.
- Geben Sie die Bundle-ID Ihrer App ein. Die Bundle-ID ist der Wert des Schlüssels CFBundleIdentifier in der Informations-Property-List-Ressourcendatei (info.plist) Ihrer App. Der Wert wird am häufigsten im Bereich „General“ (Allgemein) oder „Signing & Capabilities“ (Signierung & Funktionen) des Xcode-Projekt-Editors angezeigt. Die Bundle-ID wird auch im Bereich „General Information“ (Allgemeine Informationen) auf der Seite „App Information“ (App-Informationen) für die App auf der App Store Connect-Website von Apple angezeigt.
Achten Sie darauf, dass Sie die richtige Paket-ID für Ihre App verwenden, da Sie sie nicht mehr ändern können, wenn Sie die App Check-Funktion verwenden.
- (Optional)
Geben Sie die App-Store-ID Ihrer App ein, wenn die App im App Store von Apple veröffentlicht wurde. Die Store-ID ist ein numerischer String, der in jeder Apple App Store-URL enthalten ist.
- Öffnen Sie auf Ihrem iOS- oder iPadOS-Gerät die Apple App Store App.
- Suchen Sie nach Ihrer App.
- Wählen Sie die Schaltfläche „Teilen“ aus (Quadrat mit Pfeil nach oben).
- Wählen Sie Link kopieren aus.
- Fügen Sie den Link in einen Texteditor ein. Die App Store-ID ist der letzte Teil der URL.
Beispiel:
https://apps.apple.com/app/google/id284815942
- (Optional)
Geben Sie Ihre Team-ID ein. Weitere Informationen finden Sie in der Dokumentation zum Apple-Entwicklerkonto unter Team-ID ermitteln.
Hinweis:Das Feld „Team-ID“ ist erforderlich, wenn Sie App Check für Ihren Client aktivieren. - (Optional)
Aktivieren Sie App Check für Ihre iOS-App. Wenn Sie App Check aktivieren, wird der App Attest-Dienst von Apple verwendet, um zu prüfen, ob OAuth 2.0-Anfragen, die von Ihrem OAuth-Client stammen, echt sind und von Ihrer App kommen. So lässt sich das Risiko von App-Identitätsdiebstahl verringern. Weitere Informationen zum Aktivieren von App Check für Ihre iOS-App
- Klicken Sie auf Erstellen.
UWP
- Wählen Sie den Anwendungstyp Universelle Windows-Plattform aus.
- Geben Sie einen Namen für den OAuth-Client ein. Dieser Name wird auf der Ihres Projekts angezeigt, um den Client zu identifizieren.
- Geben Sie die 12‑stellige Microsoft Store-ID Ihrer App ein. Sie finden diesen Wert im Microsoft Partner Center auf der Seite App-Identität im Abschnitt „App-Verwaltung“.
- Klicken Sie auf Erstellen.
Bei UWP-Apps darf das benutzerdefinierte URI-Schema maximal 39 Zeichen lang sein.
Zugriffsbereiche ermitteln
Mithilfe von Bereichen wird ermöglicht, dass eine Anwendung nur für benötigte Ressourcen den Zugriff anfordern kann, während Nutzer wiederum steuern können, wie viel Zugriff sie der Anwendung gewähren. Daher kann es ein umgekehrtes Verhältnis zwischen der Anzahl der angeforderten Bereiche und der Wahrscheinlichkeit geben, dass die Einwilligung des Nutzers eingeholt wird.
Bevor Sie mit der Implementierung der OAuth 2.0-Autorisierung beginnen, empfehlen wir Ihnen, die Bereiche zu identifizieren, für die Ihre Anwendung eine Zugriffsberechtigung benötigt.
Die YouTube Data API v3 verwendet die folgenden Bereiche:
Umfang | Beschreibung |
---|---|
https://www. |
YouTube-Konto verwalten |
https://www. |
Hiermit wird eine Liste der aktuell aktiven Mitglieder des Kanals, ihre Stufe und das jeweilige Abonnementdatum abgerufen |
https://www. |
Ihre YouTube-Videos, -Bewertungen, -Kommentare und -Untertitel ansehen, bearbeiten oder dauerhaft löschen |
https://www. |
YouTube-Konto abrufen |
https://www. |
YouTube-Videos verwalten |
https://www. |
Ihre Inhalte und zugehörigen Content bei YouTube abrufen und verwalten |
https://www. |
Private Informationen aus dem YouTube-Kanal abrufen, die während des Prüfprozesses durch einen YouTube-Partner relevant sind |
Das Dokument OAuth 2.0-API-Bereiche enthält eine vollständige Liste der Bereiche, die Sie für den Zugriff auf Google-APIs verwenden können.
OAuth 2.0-Zugriffstokens abrufen
In den folgenden Schritten wird beschrieben, wie Ihre Anwendung mit dem OAuth 2.0-Server von Google interagiert, um die Zustimmung eines Nutzers zum Ausführen einer API-Anfrage in seinem Namen einzuholen. Ihre Anwendung muss diese Einwilligung haben, bevor sie eine Google API-Anfrage ausführen kann, für die eine Nutzerautorisierung erforderlich ist.
Schritt 1: Code-Verifier und -Challenge generieren
Google unterstützt das PKCE-Protokoll (Proof Key for Code Exchange), um den Ablauf für installierte Apps sicherer zu machen. Für jede Autorisierungsanfrage wird ein eindeutiger Code-Verifier erstellt. Der transformierte Wert, der als „code_challenge“ bezeichnet wird, wird an den Autorisierungsserver gesendet, um den Autorisierungscode zu erhalten.
Code-Verifier erstellen
Ein code_verifier
ist ein kryptografischer Zufallsstring mit hoher Entropie, der die nicht reservierten Zeichen [A-Z] / [a-z] / [0-9] / „-“ / „.“ / „_“ / „~“ verwendet und eine Mindestlänge von 43 Zeichen und eine maximale Länge von 128 Zeichen hat.
Der Code-Verifier sollte genügend Entropie haben, damit der Wert nicht erraten werden kann.
Code-Herausforderung erstellen
Es gibt zwei unterstützte Methoden zum Erstellen der Code-Challenge.
Methoden zur Generierung von Code-Challenges | |
---|---|
S256 (empfohlen) | Die Code-Challenge ist der Base64URL-codierte (ohne Auffüllung) SHA256-Hash des Code-Verifiers.
|
plain | Die Code-Challenge hat denselben Wert wie der oben generierte Code-Verifier.
|
Schritt 2: Anfrage an den OAuth 2.0-Server von Google senden
Um die Nutzerautorisierung zu erhalten, senden Sie eine Anfrage an den Autorisierungsserver von Google unter https://accounts.google.com/o/oauth2/v2/auth
. Dieser Endpunkt verarbeitet die Suche nach aktiven Sitzungen, authentifiziert den Nutzer und holt die Einwilligung des Nutzers ein. Der Endpunkt ist nur über SSL zugänglich und lehnt HTTP-Verbindungen (ohne SSL) ab.
Der Autorisierungsserver unterstützt die folgenden Abfragestringparameter für installierte Anwendungen:
Parameter | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client_id |
Erforderlich
Die Client-ID für Ihre Anwendung. Sie finden diesen Wert in der . |
||||||||||||||||
redirect_uri |
Erforderlich
Gibt an, wie der Autorisierungsserver von Google eine Antwort an Ihre App sendet. Für installierte Apps sind mehrere Weiterleitungsoptionen verfügbar. Sie haben Ihre Autorisierungsanmeldedaten mit einer bestimmten Weiterleitungsmethode eingerichtet. Der Wert muss genau mit einem der autorisierten Weiterleitungs-URIs für den OAuth 2.0-Client übereinstimmen, den Sie in der Ihres Clients konfiguriert haben. Wenn dieser Wert nicht mit einem autorisierten URI übereinstimmt, erhalten Sie einen In der folgenden Tabelle sehen Sie den entsprechenden
|
||||||||||||||||
response_type |
Erforderlich
Gibt an, ob der Google OAuth 2.0-Endpunkt einen Autorisierungscode zurückgibt. Legen Sie den Parameterwert für installierte Anwendungen auf |
||||||||||||||||
scope |
Erforderlich
Eine durch Leerzeichen getrennte Liste von Bereichen, die die Ressourcen identifizieren, auf die Ihre Anwendung im Namen des Nutzers zugreifen kann. Diese Werte werden auf dem Zustimmungsbildschirm angezeigt, den Google dem Nutzer präsentiert. Mithilfe von Bereichen wird ermöglicht, dass eine Anwendung nur für benötigte Ressourcen den Zugriff anfordern kann, während Nutzer wiederum steuern können, wie viel Zugriff sie der Anwendung gewähren. Daher besteht ein umgekehrtes Verhältnis zwischen der Anzahl der angeforderten Bereiche und der Wahrscheinlichkeit, dass Nutzer ihre Einwilligung erteilen. Die YouTube Data API v3 verwendet die folgenden Bereiche:
Das Dokument OAuth 2.0-API-Bereiche enthält eine vollständige Liste der Bereiche, die Sie für den Zugriff auf Google-APIs verwenden können. |
||||||||||||||||
code_challenge |
Empfohlen
Gibt ein codiertes |
||||||||||||||||
code_challenge_method |
Empfohlen
Gibt an, welche Methode zum Codieren eines |
||||||||||||||||
state |
Empfohlen
Gibt einen beliebigen Stringwert an, den Ihre Anwendung verwendet, um den Status zwischen Ihrer Autorisierungsanfrage und der Antwort des Autorisierungsservers beizubehalten.
Der Server gibt den genauen Wert zurück, den Sie als Sie können diesen Parameter für verschiedene Zwecke verwenden, z. B. um den Nutzer zur richtigen Ressource in Ihrer Anwendung weiterzuleiten, Nounces zu senden und Cross-Site-Request-Forgery zu verhindern. Da Ihr |
||||||||||||||||
login_hint |
Optional
Wenn Ihre Anwendung weiß, welcher Nutzer sich authentifizieren möchte, kann sie diesen Parameter verwenden, um dem Google-Authentifizierungsserver einen Hinweis zu geben. Der Server verwendet den Hinweis, um den Anmeldevorgang zu vereinfachen, indem er entweder das E-Mail-Feld im Anmeldeformular vorab ausfüllt oder die entsprechende Multi-Login-Sitzung auswählt. Legen Sie den Parameterwert auf eine E-Mail-Adresse oder eine |
Beispiel-Autorisierungs-URLs
Auf den Tabs unten finden Sie Beispiel-Autorisierungs-URLs für die verschiedenen Optionen für Weiterleitungs-URIs.
Mit jeder URL wird der Zugriff auf einen Bereich angefordert, der den Zugriff auf das YouTube-Konto des Nutzers ermöglicht.Die URLs sind bis auf den Wert des Parameters redirect_uri
identisch. Die URLs enthalten auch die erforderlichen Parameter response_type
und client_id
sowie den optionalen Parameter state
. Jede URL enthält Zeilenumbrüche und Leerzeichen für eine bessere Lesbarkeit.
Benutzerdefiniertes URI-Schema
https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly& response_type=code& state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken& redirect_uri=com.example.app%3A/oauth2redirect& client_id=client_id
Loopback-IP-Adresse
https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly& response_type=code& state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken& redirect_uri=http%3A//127.0.0.1%3A9004& client_id=client_id
Schritt 3: Google fordert Nutzer zur Einwilligung auf
In diesem Schritt entscheidet der Nutzer, ob er Ihrer Anwendung den angeforderten Zugriff gewähren möchte. In dieser Phase zeigt Google ein Zustimmungsfenster an, in dem der Name Ihrer Anwendung und die Google API-Dienste angezeigt werden, für die mit den Autorisierungsanmeldedaten des Nutzers eine Berechtigung angefordert wird, sowie eine Zusammenfassung der zu erteilenden Zugriffsbereiche. Der Nutzer kann dann zustimmen, den Zugriff auf einen oder mehrere von Ihrer Anwendung angeforderte Bereiche zu gewähren, oder die Anfrage ablehnen.
Ihre Anwendung muss in dieser Phase nichts tun, da sie auf die Antwort des OAuth 2.0-Servers von Google wartet, in der angegeben wird, ob Zugriff gewährt wurde. Diese Antwort wird im nächsten Schritt erläutert.
Fehler
Bei Anfragen an den OAuth 2.0-Autorisierungsendpunkt von Google werden möglicherweise für Nutzer sichtbare Fehlermeldungen anstelle der erwarteten Authentifizierungs- und Autorisierungsabläufe angezeigt. Häufige Fehlercodes und empfohlene Lösungen sind unten aufgeführt.
admin_policy_enforced
Das Google-Konto kann aufgrund der Richtlinien des Google Workspace-Administrators einen oder mehrere angeforderte Bereiche nicht autorisieren. Weitere Informationen dazu, wie ein Administrator den Zugriff auf alle Bereiche oder auf vertrauliche und eingeschränkte Bereiche einschränken kann, bis der Zugriff explizit für Ihre OAuth-Client-ID gewährt wird, finden Sie im Google Workspace-Hilfeartikel Zugriff externer und interner Apps auf Google Workspace-Daten verwalten.
disallowed_useragent
Der Autorisierungsendpunkt wird in einem eingebetteten User-Agent angezeigt, der gemäß den OAuth 2.0-Richtlinien von Google nicht zulässig ist.
Android
Android-Entwickler sehen diese Fehlermeldung möglicherweise, wenn sie Autorisierungsanfragen in android.webkit.WebView
öffnen.
Entwickler sollten stattdessen Android-Bibliotheken wie Google Sign-In for Android oder AppAuth for Android von der OpenID Foundation verwenden.
Webentwickler können auf diesen Fehler stoßen, wenn eine Android-App einen allgemeinen Weblink in einem eingebetteten User-Agent öffnet und ein Nutzer von Ihrer Website aus zum OAuth 2.0-Autorisierungsendpunkt von Google navigiert. Entwickler sollten zulassen, dass allgemeine Links im Standard-Link-Handler des Betriebssystems geöffnet werden. Dazu gehören sowohl Android App Links-Handler als auch die Standardbrowser-App. Die Android Custom Tabs-Bibliothek ist ebenfalls eine unterstützte Option.
iOS
iOS- und macOS-Entwickler können diesen Fehler erhalten, wenn sie Autorisierungsanfragen in WKWebView
öffnen.
Entwickler sollten stattdessen iOS-Bibliotheken wie Google Sign-In for iOS oder AppAuth for iOS von der OpenID Foundation verwenden.
Webentwickler können auf diesen Fehler stoßen, wenn eine iOS- oder macOS-App einen allgemeinen Weblink in einem eingebetteten User-Agent öffnet und ein Nutzer von Ihrer Website aus zum OAuth 2.0-Autorisierungsendpunkt von Google navigiert. Entwickler sollten zulassen, dass allgemeine Links im Standard-Link-Handler des Betriebssystems geöffnet werden. Dazu gehören sowohl Universal Links-Handler als auch die Standardbrowser-App. Die SFSafariViewController
-Bibliothek ist ebenfalls eine unterstützte Option.
org_internal
Die OAuth-Client-ID in der Anfrage gehört zu einem Projekt, das den Zugriff auf Google-Konten in einer bestimmten Google Cloud-Organisation einschränkt. Weitere Informationen zu dieser Konfigurationsoption finden Sie im Hilfeartikel OAuth-Zustimmungsbildschirm einrichten im Abschnitt Nutzertyp.
deleted_client
Der OAuth-Client, der für die Anfrage verwendet wird, wurde gelöscht. Das Löschen kann manuell oder automatisch erfolgen, z. B. bei nicht verwendeten Clients . Gelöschte Mandanten können innerhalb von 30 Tagen nach dem Löschen wiederhergestellt werden. Weitere Informationen
invalid_grant
Wenn Sie einen Code-Prüfer und eine Challenge verwenden, ist der Parameter code_callenge
ungültig oder fehlt. Prüfen Sie, ob der Parameter code_challenge
richtig festgelegt ist.
Beim Aktualisieren eines Zugriffstokens ist das Token möglicherweise abgelaufen oder wurde ungültig. Authentifizieren Sie den Nutzer noch einmal und bitten Sie ihn um die Einwilligung, neue Tokens zu erhalten. Wenn dieser Fehler weiterhin auftritt, prüfen Sie, ob Ihre Anwendung richtig konfiguriert ist und ob Sie die richtigen Tokens und Parameter in Ihrer Anfrage verwenden. Andernfalls wurde das Nutzerkonto möglicherweise gelöscht oder deaktiviert.
redirect_uri_mismatch
Der in der Autorisierungsanfrage übergebene redirect_uri
stimmt nicht mit einem autorisierten Weiterleitungs-URI für die OAuth-Client-ID überein. Überprüfen Sie die autorisierten Weiterleitungs-URIs in der
.
Der übergebene redirect_uri
ist möglicherweise für den Clienttyp ungültig.
Der Parameter redirect_uri
bezieht sich möglicherweise auf den OAuth-Out-of-Band-Ablauf (OOB), der eingestellt wurde und nicht mehr unterstützt wird. Weitere Informationen finden Sie in der Migrationsanleitung.
invalid_request
Bei Ihrer Anfrage ist ein Fehler aufgetreten. Das kann verschiedene Gründe haben:
- Die Anfrage war nicht richtig formatiert
- In der Anfrage fehlten erforderliche Parameter.
- Die Anfrage verwendet eine Autorisierungsmethode, die von Google nicht unterstützt wird. Prüfen, ob für Ihre OAuth-Integration eine empfohlene Integrationsmethode verwendet wird
- Für den Weiterleitungs-URI wird ein benutzerdefiniertes Schema verwendet : Wenn Sie die Fehlermeldung Benutzerdefiniertes URI-Schema wird in Chrome-Apps nicht unterstützt oder Benutzerdefiniertes URI-Schema ist für Ihren Android-Client nicht aktiviert sehen, verwenden Sie ein benutzerdefiniertes URI-Schema, das in Chrome-Apps nicht unterstützt wird und unter Android standardmäßig deaktiviert ist. Weitere Informationen zu Alternativen zum benutzerdefinierten URI-Schema
Schritt 4: OAuth 2.0-Serverantwort verarbeiten
Wie Ihre Anwendung die Autorisierungsantwort empfängt, hängt vom Weiterleitungs-URI-Schema ab, das sie verwendet. Unabhängig vom Schema enthält die Antwort entweder einen Autorisierungscode (code
) oder einen Fehler (error
). error=access_denied
gibt beispielsweise an, dass der Nutzer die Anfrage abgelehnt hat.
Wenn der Nutzer Ihrer Anwendung Zugriff gewährt, können Sie den Autorisierungscode wie im nächsten Schritt beschrieben gegen ein Zugriffstoken und ein Aktualisierungstoken eintauschen.
Schritt 5: Autorisierungscode gegen Aktualisierungs- und Zugriffstokens austauschen
Wenn Sie einen Autorisierungscode gegen ein Zugriffstoken eintauschen möchten, rufen Sie den Endpunkt https://oauth2.googleapis.com/token
auf und legen Sie die folgenden Parameter fest:
Felder | |
---|---|
client_id |
Die Client-ID, die von der abgerufen wurde. |
client_secret |
Der Clientschlüssel, der von abgerufen wurde. |
code |
Der Autorisierungscode, der von der ursprünglichen Anfrage zurückgegeben wurde. |
code_verifier |
Den Code-Verifier, den Sie in Schritt 1 erstellt haben. |
grant_type |
Gemäß der OAuth 2.0-Spezifikation muss der Wert dieses Felds auf authorization_code gesetzt werden. |
redirect_uri |
Einer der Weiterleitungs-URIs, die für Ihr Projekt in der
für die angegebene client_id aufgeführt sind. |
Das folgende Snippet zeigt eine Beispielanfrage:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7& client_id=your_client_id& client_secret=your_client_secret& redirect_uri=http://127.0.0.1:9004& grant_type=authorization_code
Google antwortet auf diese Anfrage mit einem JSON-Objekt, das ein kurzlebiges Zugriffstoken und ein Aktualisierungstoken enthält.
Die Antwort umfasst die folgenden Felder:
Felder | |
---|---|
access_token |
Das Token, das Ihre Anwendung zum Autorisieren einer Google API-Anfrage sendet. |
expires_in |
Die verbleibende Lebensdauer des Zugriffstokens in Sekunden. |
id_token |
Hinweis:Diese Property wird nur zurückgegeben, wenn Ihre Anfrage einen Identitätsbereich wie openid , profile oder email enthält. Der Wert ist ein JSON-Webtoken (JWT), das digital signierte Identitätsinformationen über den Nutzer enthält. |
refresh_token |
Ein Token, mit dem Sie ein neues Zugriffstoken abrufen können. Aktualisierungstokens sind gültig, bis der Nutzer den Zugriff widerruft oder das Aktualisierungstoken abläuft. Aktualisierungstokens werden immer für installierte Anwendungen zurückgegeben. |
refresh_token_expires_in |
Die verbleibende Lebensdauer des Aktualisierungstokens in Sekunden. Dieser Wert wird nur festgelegt, wenn der Nutzer zeitbasierten Zugriff gewährt. |
scope |
Die von access_token gewährten Zugriffsbereiche, ausgedrückt als Liste von durch Leerzeichen getrennten, groß- und kleinschreibungsabhängigen Strings. |
token_type |
Der Typ des zurückgegebenen Tokens. Der Wert dieses Felds ist derzeit immer auf Bearer festgelegt. |
Das folgende Snippet zeigt eine Beispielantwort:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/youtube.force-ssl", "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
Schritt 6: Prüfen, welche Bereiche Nutzer gewährt haben
Wenn Sie mehrere Berechtigungen (Bereich) anfordern, gewähren Nutzer Ihrer App möglicherweise nicht für alle Zugriff. Ihre App muss prüfen, welche Bereiche tatsächlich gewährt wurden, und Situationen, in denen einige Berechtigungen verweigert werden, angemessen behandeln. In der Regel werden die Funktionen deaktiviert, die auf diesen verweigerten Bereichen basieren.
Es gibt jedoch Ausnahmen. Google Workspace Enterprise-Apps mit domainweiter Übertragung von Befugnissen oder Apps, die als Vertrauenswürdig gekennzeichnet sind, umgehen den Zustimmungsbildschirm für detaillierte Berechtigungen. Nutzern dieser Apps wird der Zustimmungsbildschirm für detaillierte Berechtigungen nicht angezeigt. Stattdessen erhält Ihre App entweder alle angeforderten Bereiche oder keinen.
Weitere Informationen finden Sie unter Granulare Berechtigungen verwalten.
Wenn Sie prüfen möchten, ob der Nutzer Ihrer Anwendung Zugriff auf einen bestimmten Bereich gewährt hat, sehen Sie sich das Feld scope
in der Antwort des Zugriffstokens an. Die Zugriffsbereiche, die durch das access_token gewährt werden, ausgedrückt als Liste von durch Leerzeichen getrennten, case-sensitiven Strings.
Die folgende Beispielantwort für ein Zugriffstoken gibt beispielsweise an, dass der Nutzer Ihrer Anwendung die Berechtigung erteilt hat, die YouTube-Videos, ‑Bewertungen, ‑Kommentare und ‑Untertitel des Nutzers anzusehen, zu bearbeiten und dauerhaft zu löschen:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/youtube.force-ssl", "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
Google APIs aufrufen
Nachdem Ihre Anwendung ein Zugriffstoken erhalten hat, können Sie das Token verwenden, um im Namen eines bestimmten Nutzerkontos Aufrufe an eine Google API zu senden, sofern die von der API erforderlichen Zugriffsbereiche gewährt wurden. Dazu müssen Sie das Zugriffstoken in eine Anfrage an die API einfügen. Verwenden Sie dazu entweder den Abfrageparameter access_token
oder den HTTP-Header Authorization
mit dem Wert Bearer
. Wenn möglich, ist der HTTP-Header vorzuziehen, da Abfragestrings in der Regel in Serverlogs sichtbar sind. In den meisten Fällen können Sie eine Clientbibliothek verwenden, um Ihre Aufrufe von Google APIs einzurichten, z. B. beim Aufrufen der YouTube Data API.
Hinweis: Die YouTube Data API unterstützt Dienstkonten nur für YouTube-Rechteinhaber, die mehrere YouTube-Kanäle besitzen und verwalten, z. B. Musiklabels und Filmstudios.
Sie können alle Google APIs ausprobieren und ihre Bereiche im OAuth 2.0 Playground ansehen.
Beispiele für HTTP GET
Ein Aufruf des Endpunkts
youtube.channels
(YouTube Data API) mit dem HTTP-Header Authorization: Bearer
könnte so aussehen: Sie müssen Ihr eigenes Zugriffstoken angeben:
GET /youtube/v3/channels?part=snippet&mine=true HTTP/1.1 Host: www.googleapis.com Authorization: Bearer access_token
Hier ist ein Aufruf derselben API für den authentifizierten Nutzer mit dem Query-String-Parameter access_token
:
GET https://www.googleapis.com/youtube/v3/channels?access_token=access_token&part=snippet&mine=true
Beispiele für curl
Sie können diese Befehle mit der curl
-Befehlszeilenanwendung testen. Hier ein Beispiel mit der HTTP-Header-Option (bevorzugt):
curl -H "Authorization: Bearer access_token" https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true
Alternativ können Sie auch die Option für den Abfragestringparameter verwenden:
curl https://www.googleapis.com/youtube/v3/channels?access_token=access_token&part=snippet&mine=true
Zugriffstokens aktualisieren
Zugriffstokens laufen regelmäßig ab und werden zu ungültigen Anmeldedaten für eine zugehörige API-Anfrage. Sie können ein Zugriffstoken aktualisieren, ohne den Nutzer um eine Berechtigung zu bitten (auch wenn der Nutzer nicht anwesend ist), wenn Sie den Offlinezugriff auf die mit dem Token verknüpften Bereiche angefordert haben.
Wenn Sie ein Zugriffstoken aktualisieren möchten, sendet Ihre Anwendung eine HTTPS-Anfrage POST
an den Autorisierungsserver von Google (https://oauth2.googleapis.com/token
), die die folgenden Parameter enthält:
Felder | |
---|---|
client_id |
Die Client-ID, die von API Consoleabgerufen wurde. |
client_secret |
Der vom API Consoleabgerufene Clientschlüssel.
Die client_secret gilt nicht für Anfragen von Clients, die als Android-, iOS- oder Chrome-Anwendungen registriert sind.
|
grant_type |
Wie in der OAuth 2.0-Spezifikation definiert, muss der Wert dieses Felds auf refresh_token gesetzt werden. |
refresh_token |
Das Aktualisierungstoken, das beim Austausch des Autorisierungscodes zurückgegeben wird. |
Das folgende Snippet zeigt eine Beispielanfrage:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded client_id=your_client_id& client_secret=your_client_secret& refresh_token=refresh_token& grant_type=refresh_token
Solange der Nutzer den der Anwendung gewährten Zugriff nicht widerrufen hat, gibt der Tokenserver ein JSON-Objekt mit einem neuen Zugriffstoken zurück. Das folgende Snippet zeigt eine Beispielantwort:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "scope": "https://www.googleapis.com/auth/drive.metadata.readonly", "token_type": "Bearer" }
Beachten Sie, dass die Anzahl der ausgegebenen Aktualisierungstokens begrenzt ist: ein Limit pro Client-/Nutzerkombination und ein weiteres pro Nutzer für alle Clients. Aktualisierungstokens sollten langfristig gespeichert und so lange verwendet werden, wie sie gültig sind. Wenn Ihre Anwendung zu viele Aktualisierungstokens anfordert, kann es sein, dass diese Limits erreicht werden. In diesem Fall funktionieren ältere Aktualisierungstokens nicht mehr.
Token widerrufen
In einigen Fällen möchten Nutzer den Zugriff auf eine Anwendung widerrufen. Ein Nutzer kann den Zugriff in den Kontoeinstellungen widerrufen. Weitere Informationen finden Sie im Hilfeartikel Websites und Apps von Drittanbietern mit Zugriff auf Ihr Konto im Abschnitt Zugriff auf Websites oder Apps entfernen.
Eine Anwendung kann den ihr gewährten Zugriff auch programmatisch widerrufen. Der programmatische Widerruf ist wichtig, wenn ein Nutzer ein Abo kündigt, eine Anwendung entfernt oder sich die von einer App benötigten API-Ressourcen erheblich geändert haben. Mit anderen Worten: Ein Teil des Entfernungsprozesses kann eine API-Anfrage umfassen, um sicherzustellen, dass die zuvor der Anwendung gewährten Berechtigungen entfernt werden.
Wenn Sie ein Token programmatisch widerrufen möchten, sendet Ihre Anwendung eine Anfrage an https://oauth2.googleapis.com/revoke
und fügt das Token als Parameter ein:
curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \ https://oauth2.googleapis.com/revoke?token={token}
Das Token kann ein Zugriffs- oder ein Aktualisierungstoken sein. Wenn es sich bei dem Token um ein Zugriffstoken handelt und es ein entsprechendes Aktualisierungstoken gibt, wird auch das Aktualisierungstoken widerrufen.
Wenn der Widerruf erfolgreich verarbeitet wurde, ist der HTTP-Statuscode der Antwort 200
. Bei Fehlerbedingungen wird zusammen mit einem Fehlercode ein HTTP-Statuscode 400
zurückgegeben.
Methoden für App-Weiterleitungen
Benutzerdefiniertes URI-Schema (Android, iOS, UWP)
Benutzerdefinierte URI-Schemas sind eine Form des Deeplinking, bei der ein benutzerdefiniertes Schema zum Öffnen Ihrer App verwendet wird.
Alternative zur Verwendung benutzerdefinierter URI-Schemas unter Android
Verwenden Sie die empfohlene Alternative, bei der die OAuth 2.0-Antwort direkt an Ihre App gesendet wird. Dadurch ist keine Weiterleitungs-URI erforderlich.
Migration zur Google Identity Services Android-Bibliothek
Wenn Sie ein benutzerdefiniertes Schema für Ihre OAuth-Integration unter Android verwenden, müssen Sie die folgenden Schritte ausführen, um vollständig zur empfohlenen Google Identity Services Android-Bibliothek zu migrieren:
- Aktualisieren Sie Ihren Code, um die Google Identity Services Android-Bibliothek zu verwenden.
- Deaktivieren Sie die Unterstützung für benutzerdefinierte Schemas in der Google Cloud Console.
In den folgenden Schritten wird beschrieben, wie Sie zur Google Identity Services-Android-Bibliothek migrieren:
-
Aktualisieren Sie Ihren Code, um die Google Identity Services Android-Bibliothek zu verwenden:
-
Sehen Sie sich Ihren Code an, um herauszufinden, wo Sie eine Anfrage an den OAuth 2.0-Server von Google senden. Wenn Sie ein benutzerdefiniertes Schema verwenden, sieht Ihre Anfrage so aus:
https://accounts.google.com/o/oauth2/v2/auth? scope=<SCOPES>& response_type=code& &state=<STATE>& redirect_uri=com.example.app:/oauth2redirect& client_id=<CLIENT_ID>
com.example.app:/oauth2redirect
ist der benutzerdefinierte Schema-Weiterleitungs-URI im obigen Beispiel. Weitere Informationen zum Format des benutzerdefinierten URI-Schema-Werts finden Sie in der Parameterdefinition fürredirect_uri
. -
Notieren Sie sich die Anfrageparameter
scope
undclient_id
, die Sie zum Konfigurieren des Google Sign-In SDK benötigen. -
Folgen Sie der Anleitung unter
Zugriff auf Google-Nutzerdaten autorisieren , um das SDK einzurichten. Sie können den Schritt Google Cloud Console-Projekt einrichten überspringen, da Sie die
client_id
aus dem vorherigen Schritt wiederverwenden. -
Folgen Sie der Anleitung unter
Berechtigungen anfordern, die für Nutzeraktionen erforderlich sind. Dazu sind folgende Schritte erforderlich:
- Berechtigungen vom Nutzer anfordern
-
Verwenden Sie die Methode
getServerAuthCode
, um einen Autorisierungscode für die Bereiche abzurufen, für die Sie eine Berechtigung anfordern. - Senden Sie den Autorisierungscode an das Backend Ihrer App, um ihn gegen ein Zugriffs- und Aktualisierungstoken einzutauschen.
- Verwenden Sie das abgerufene Zugriffstoken, um im Namen des Nutzers Google APIs aufzurufen.
-
Sehen Sie sich Ihren Code an, um herauszufinden, wo Sie eine Anfrage an den OAuth 2.0-Server von Google senden. Wenn Sie ein benutzerdefiniertes Schema verwenden, sieht Ihre Anfrage so aus:
-
Deaktivieren Sie die Unterstützung für benutzerdefinierte Schemas in der Google API Console:
- Rufen Sie die Liste Ihrer OAuth 2.0-Anmeldedaten auf und wählen Sie Ihren Android-Client aus.
- Rufen Sie den Bereich Erweiterte Einstellungen auf, entfernen Sie das Häkchen aus dem Kästchen Benutzerdefiniertes URI-Schema aktivieren und klicken Sie auf Speichern, um die Unterstützung für benutzerdefinierte URI-Schemas zu deaktivieren.
Benutzerdefiniertes URI-Schema aktivieren
Wenn die empfohlene Alternative für Sie nicht funktioniert, können Sie benutzerdefinierte URI-Schemas für Ihren Android-Client aktivieren. Folgen Sie dazu der Anleitung unten:- Rufen Sie die Liste OAuth 2.0-Anmeldedaten auf und wählen Sie Ihren Android-Client aus.
- Rufen Sie den Bereich Erweiterte Einstellungen auf, setzen Sie ein Häkchen bei Benutzerdefiniertes URI-Schema aktivieren und klicken Sie auf Speichern, um die Unterstützung für benutzerdefinierte URI-Schemas zu aktivieren.
Alternativen zur Verwendung benutzerdefinierter URI-Schemata in Chrome-Apps
Verwenden Sie die Chrome Identity API, die die OAuth 2.0-Antwort direkt an Ihre App sendet. Dadurch ist keine Weiterleitungs-URI erforderlich.
Loopback-IP-Adresse (macOS, Linux, Windows-Desktop)
Damit Sie den Autorisierungscode über diese URL erhalten, muss Ihre Anwendung den lokalen Webserver überwachen. Das ist auf vielen, aber nicht allen Plattformen möglich. Wenn Ihre Plattform dies jedoch unterstützt, ist dies der empfohlene Mechanismus zum Abrufen des Autorisierungscodes.
Wenn Ihre App die Autorisierungsantwort empfängt, sollte sie zur besseren Nutzerfreundlichkeit mit der Anzeige einer HTML-Seite reagieren, auf der der Nutzer aufgefordert wird, den Browser zu schließen und zu Ihrer App zurückzukehren.
Empfohlene Nutzung | macOS-, Linux- und Windows-Desktop-Apps (nicht Universal Windows Platform-Apps) |
Formularwerte | Legen Sie als Anwendungstyp Desktop-App fest. |
Manuelles Kopieren/Einfügen (eingestellt)
Apps schützen
App-Inhaberschaft bestätigen (Android, Chrome)
Sie können die Inhaberschaft Ihrer Anwendung bestätigen, um das Risiko von App-Identitätsdiebstahl zu verringern.
Android
Wenn Sie ein Google Play-Entwicklerkonto haben und Ihre App in der Google Play Console registriert ist, können Sie dieses Konto verwenden, um die Bestätigung abzuschließen. Damit die Bestätigung erfolgreich ist, müssen die folgenden Anforderungen erfüllt sein:
- Sie müssen in der Google Play Console eine registrierte Anwendung mit demselben Paketnamen und SHA-1-Signaturzertifikat-Fingerabdruck wie der Android-OAuth-Client haben, für den Sie die Bestätigung durchführen.
- Sie benötigen die Berechtigung Administrator für die App in der Google Play Console. Weitere Informationen zur Zugriffsverwaltung in der Google Play Console
Klicken Sie im Android-Client im Abschnitt App-Inhaberschaft bestätigen auf die Schaltfläche Inhaberschaft bestätigen, um die Bestätigung abzuschließen.
Wenn die Bestätigung erfolgreich ist, wird eine Benachrichtigung angezeigt, die dies bestätigt. Andernfalls wird eine Fehlermeldung angezeigt.
So beheben Sie eine fehlgeschlagene Überprüfung:
- Prüfen Sie, ob die App, die Sie bestätigen, in der Google Play Console registriert ist.
- Sie benötigen die Berechtigung Administrator für die App in der Google Play Console.
Chrome
Für die Bestätigung verwenden Sie Ihr Chrome Web Store-Entwicklerkonto. Damit die Überprüfung erfolgreich abgeschlossen werden kann, müssen folgende Anforderungen erfüllt sein:
- Sie müssen im Chrome Web Store-Entwickler-Dashboard einen registrierten Artikel mit derselben Artikel-ID wie der OAuth-Client der Chrome-Erweiterung haben, für den Sie die Bestätigung durchführen.
- Sie müssen Publisher für das Chrome Web Store-Element sein. Weitere Informationen zur Zugriffsverwaltung im Chrome Web Store-Entwickler-Dashboard
Klicken Sie im Chrome-Erweiterungsclient im Abschnitt App-Inhaberschaft bestätigen auf die Schaltfläche Inhaberschaft bestätigen, um die Bestätigung abzuschließen.
Hinweis:Warten Sie einige Minuten, bevor Sie die Bestätigung abschließen, nachdem Sie Zugriff auf Ihr Konto gewährt haben.
Wenn die Bestätigung erfolgreich ist, wird eine Benachrichtigung angezeigt, die dies bestätigt. Andernfalls wird eine Fehlermeldung angezeigt.
So beheben Sie eine fehlgeschlagene Überprüfung:
- Achten Sie darauf, dass im Chrome Web Store-Entwickler-Dashboard ein registrierter Artikel mit derselben Artikel-ID wie der OAuth-Client der Chrome-Erweiterung vorhanden ist, für den Sie die Bestätigung durchführen.
- Sie müssen Publisher der App sein. Das bedeutet, dass Sie entweder der individuelle Publisher der App oder ein Mitglied des Gruppen-Publisher-Kontos der App sein müssen. Weitere Informationen zur Zugriffsverwaltung im Chrome Web Store-Entwickler-Dashboard
- Wenn Sie die Liste der Gruppenpublisher gerade aktualisiert haben, prüfen Sie, ob die Liste der Gruppenpublisher-Mitglieder im Chrome Web Store-Entwickler-Dashboard synchronisiert wurde. Weitere Informationen zum Synchronisieren der Liste der Publisher-Mitglieder
App Check (nur iOS)
Mit der Funktion App Check können Sie Ihre iOS-Anwendungen vor unautorisierter Nutzung schützen. Dazu wird der App Attest-Dienst von Apple verwendet, um zu überprüfen, ob Anfragen an Google OAuth 2.0-Endpunkte von Ihren authentischen Anwendungen stammen. So lässt sich das Risiko von App-Identitätsdiebstahl verringern.
App Check für Ihren iOS-Client aktivieren
Die folgenden Anforderungen müssen erfüllt sein, damit Sie App Check für Ihren iOS-Client aktivieren können:- Sie müssen eine Team-ID für Ihren iOS-Client angeben.
- Sie dürfen keinen Platzhalter in Ihrer Paket-ID verwenden, da er zu mehr als einer App aufgelöst werden kann. Das bedeutet, dass die Paket-ID kein Sternchen (*) enthalten darf.
Nachdem Sie App Check aktiviert haben, werden in der Bearbeitungsansicht des OAuth-Clients Messwerte zu OAuth-Anfragen von Ihrem Client angezeigt. Anfragen von nicht verifizierten Quellen werden erst blockiert, wenn Sie App Check erzwingen. Anhand der Informationen auf der Seite zur Messwertüberwachung können Sie feststellen, wann Sie mit der Durchsetzung beginnen sollten.
Wenn Sie App Check für Ihre iOS-App aktivieren, können Fehler im Zusammenhang mit der App Check-Funktion auftreten. Versuchen Sie, diese Fehler so zu beheben:
- Prüfen Sie, ob die von Ihnen angegebene Paket-ID und Team-ID gültig sind.
- Achten Sie darauf, dass Sie keinen Platzhalter für die Paket-ID verwenden.
App Check für Ihren iOS-Client erzwingen
Wenn Sie App Check für Ihre App aktivieren, werden nicht erkannte Anfragen nicht automatisch blockiert. Wenn Sie diese Schutzmaßnahme erzwingen möchten, rufen Sie die Bearbeitungsansicht Ihres iOS-Clients auf. Dort sehen Sie App Check-Messwerte rechts auf der Seite im Bereich Google Identity for iOS. Die Messwerte enthalten die folgenden Informationen:- Anzahl der bestätigten Anfragen: Anfragen mit einem gültigen App Check-Token. Nachdem Sie die Erzwingung von App Check aktiviert haben, sind nur Anfragen in dieser Kategorie erfolgreich.
- Anzahl der nicht bestätigten Anfragen: möglicherweise veraltete Clientanfragen: Anfragen ohne App Check-Token. Diese Anfragen stammen möglicherweise von einer älteren Version Ihrer App, die keine App Check-Implementierung enthält.
- Anzahl der nicht bestätigten Anfragen: Anfragen unbekannten Ursprungs: Anfragen ohne App Check-Token, die nicht von Ihrer App zu stammen scheinen.
- Anzahl nicht bestätigter Anfragen: ungültige Anfragen – Anfragen mit einem ungültigen App Check-Token, was auf emulierte Umgebungen oder einen nicht authentischen Client zurückzuführen sein kann, der versucht, sich als Ihre App auszugeben.
Wenn Sie App Check erzwingen möchten, klicken Sie auf die Schaltfläche ERZWINGEN und bestätigen Sie Ihre Auswahl. Sobald die Erzwingung aktiv ist, werden alle nicht bestätigten Anfragen von Ihrem Client abgelehnt.
Hinweis: Nachdem Sie die Erzwingung aktiviert haben, kann es bis zu 15 Minuten dauern, bis die Änderungen wirksam werden.
App Check für Ihren iOS-Client nicht erzwingen
Wenn Sie App Check für Ihre App nicht erzwingen, wird die Erzwingung beendet und alle Anfragen von Ihrem Client an Google OAuth 2.0-Endpunkte werden zugelassen, einschließlich nicht bestätigter Anfragen.
Wenn Sie App Check für Ihren iOS-Client deaktivieren möchten, rufen Sie die Bearbeitungsansicht des iOS-Clients auf, klicken Sie auf die Schaltfläche DEAKTIVIEREN und bestätigen Sie Ihre Auswahl.
Hinweis: Nachdem Sie die Erzwingung von App Check aufgehoben haben, kann es bis zu 15 Minuten dauern, bis die Änderungen wirksam werden.
App Check für Ihren iOS-Client deaktivieren
Wenn Sie App Check für Ihre App deaktivieren, werden alle App Check-Überwachungs- und Erzwingungsmaßnahmen beendet. Erwägen Sie stattdessen, App Check nicht zu erzwingen, damit Sie weiterhin Messwerte für Ihren Client erfassen können.
Wenn Sie App Check für Ihren iOS-Client deaktivieren möchten, rufen Sie die Bearbeitungsansicht des iOS-Clients auf und deaktivieren Sie die Ein/Aus-Schaltfläche OAuth-Client mit Firebase App Check vor Missbrauch schützen.
Hinweis: Nachdem Sie App Check deaktiviert haben, kann es bis zu 15 Minuten dauern, bis die Änderungen wirksam werden.
Zeitbasierter Zugriff
Mit dem zeitbasierten Zugriff kann ein Nutzer Ihrer App für einen begrenzten Zeitraum Zugriff auf seine Daten gewähren, um eine Aktion auszuführen. Der zeitbasierte Zugriff ist in ausgewählten Google-Produkten während des Einwilligungsablaufs verfügbar. Nutzer haben so die Möglichkeit, den Zugriff für einen begrenzten Zeitraum zu gewähren. Ein Beispiel ist die Data Portability API, die eine einmalige Datenübertragung ermöglicht.
Wenn ein Nutzer Ihrer Anwendung zeitbasierten Zugriff gewährt, läuft das Aktualisierungstoken nach dem angegebenen Zeitraum ab. Unter bestimmten Umständen können Aktualisierungstokens auch früher ungültig werden. Weitere Informationen Das Feld refresh_token_expires_in
, das in der Antwort des Autorisierungscode-Austauschs zurückgegeben wird, gibt in solchen Fällen die verbleibende Zeit bis zum Ablauf des Aktualisierungstokens an.
Weiterführende Literatur
Viele der hier dokumentierten Best Practices sind in der IETF Best Current Practice OAuth 2.0 for Native Apps festgelegt.
Produktübergreifenden Kontoschutz implementieren
Ein zusätzlicher Schritt, den Sie unternehmen sollten, um die Konten Ihrer Nutzer zu schützen, ist die Implementierung von Cross-Account Protection mithilfe des Cross-Account Protection Service von Google. Mit diesem Dienst können Sie Benachrichtigungen zu Sicherheitsereignissen abonnieren, die Ihre Anwendung über wichtige Änderungen am Nutzerkonto informieren. Anhand dieser Informationen können Sie dann Maßnahmen ergreifen, je nachdem, wie Sie auf Ereignisse reagieren möchten.
Hier einige Beispiele für die Ereignistypen, die vom Google Cross-Account Protection Service an Ihre App gesendet werden:
-
https://schemas.openid.net/secevent/risc/event-type/sessions-revoked
-
https://schemas.openid.net/secevent/oauth/event-type/token-revoked
-
https://schemas.openid.net/secevent/risc/event-type/account-disabled
Weitere Informationen zur Implementierung des produktübergreifenden Kontoschutzes und die vollständige Liste der verfügbaren Ereignisse finden Sie auf der Seite Nutzerkonten mit dem produktübergreifenden Kontoschutz schützen .