Best Practices

Auf dieser Seite finden Sie einige allgemeine Best Practices für die Integration mit OAuth 2.0. Berücksichtigen Sie diese Best Practices zusätzlich zu den spezifischen Anleitungen für Ihre Art von Anwendungs- und Entwicklungsplattform. Weitere Informationen findest du in den Hinweisen zur Vorbereitung der Anwendung auf die Produktion und in den OAuth 2.0-Richtlinien von Google.

Clientanmeldedaten sicher handhaben

Die Anmeldedaten des OAuth-Clients identifizieren die Identität Ihrer Anwendung und sollten mit Bedacht behandelt werden. Speichern Sie diese Anmeldedaten nur in einem sicheren Speicher, z. B. mit einem Secret Manager wie Google Cloud Secret Manager. Sie sollten die Anmeldedaten nicht hartcodieren, sie nicht in einem Code-Repository speichern oder öffentlich veröffentlichen.

Nutzertokens sicher handhaben

Nutzer-Tokens umfassen sowohl Aktualisierungs-Tokens als auch Zugriffstokens, die von Ihrer Anwendung verwendet werden. Bewahren Sie Tokens im inaktiven Zustand sicher auf und übertragen Sie sie niemals in Klartext. Verwenden Sie ein sicheres Speichersystem, das für Ihre Plattform geeignet ist, z. B. Keystore unter Android, Schlüsselbunddienste unter iOS und macOS oder Anmeldedatenspeicher unter Windows.

Widerrufen Sie Tokens, sobald sie nicht mehr benötigt werden, und löschen Sie sie dauerhaft aus Ihren Systemen.

Außerdem solltest du die folgenden Best Practices für deine Plattform berücksichtigen:

  • Verschlüsseln Sie bei serverseitigen Anwendungen, die Tokens für viele Nutzer speichern, diese im Ruhezustand. Achten Sie außerdem darauf, dass Ihr Datenspeicher nicht öffentlich über das Internet zugänglich ist.
  • Für native Desktop-Apps wird dringend empfohlen, das PKCE-Protokoll (Proof Key for Code Exchange) zu verwenden, um Autorisierungscodes abzurufen, die gegen Zugriffstokens eingetauscht werden können.

Umgang mit dem Widerruf und Ablauf von Aktualisierungstokens

Wenn Ihre Anwendung ein Aktualisierungstoken für den Offline-Zugriff angefordert hat, müssen Sie auch die Entwertung oder den Ablauf des Tokens bearbeiten. Tokens können aus verschiedenen Gründen entwertet werden, z. B. wenn sie abgelaufen sind oder der Zugriff Ihrer Anwendungen vom Nutzer oder durch einen automatisierten Prozess widerrufen wurde. Überlegen Sie sich in diesem Fall genau, wie Ihre Anwendung reagieren soll. Dazu gehört auch, den Nutzer bei der nächsten Anmeldung aufzufordern oder seine Daten zu bereinigen. Wenn Sie über Tokenwiderruf informiert werden möchten, müssen Sie den Dienst für den produktübergreifenden Kontoschutz einbinden.

Inkrementelle Autorisierung verwenden

Verwenden Sie die inkrementelle Autorisierung, um geeignete OAuth-Bereiche anzufordern, wenn dies von Ihrer Anwendung benötigt wird.

Sie sollten den Zugriff auf Daten nicht bei der ersten Authentifizierung des Nutzers anfordern, es sei denn, dies ist für die Hauptfunktion Ihrer Anwendung erforderlich. Fordern Sie stattdessen nur die spezifischen Bereiche an, die für eine Aufgabe benötigt werden. Dabei gilt das Prinzip, die kleinsten und beschränktsten Bereiche auszuwählen.

Fragen Sie Bereiche immer im Kontext an, damit Nutzer verstehen, warum Ihre Anwendung Zugriff anfordert und wie die Daten verwendet werden.

Ihre Anwendung könnte beispielsweise diesem Modell folgen:

  1. Der Nutzer authentifiziert sich bei deiner Anwendung.
    1. Es werden keine zusätzlichen Bereiche angefordert. Die App bietet grundlegende Funktionen, mit denen der Nutzer Funktionen erkunden und verwenden kann, für die keine zusätzlichen Daten oder Zugriffe erforderlich sind.
  2. Der Nutzer wählt eine Funktion aus, die Zugriff auf zusätzliche Daten benötigt.
    1. Ihre Anwendung stellt eine Autorisierungsanfrage für diesen spezifischen OAuth-Bereich, der für diese Funktion erforderlich ist. Wenn für dieses Feature mehrere Bereiche erforderlich sind, folgen Sie den Best Practices unten.
    2. Wenn der Nutzer die Anfrage ablehnt, deaktiviert die App die Funktion und bietet dem Nutzer zusätzlichen Kontext, um den Zugriff noch einmal anzufordern.

Einwilligung für mehrere Bereiche verarbeiten

Wenn Nutzer mehrere Bereiche gleichzeitig anfordern, gewähren Nutzer möglicherweise nicht alle angeforderten OAuth-Bereiche. Ihre App sollte mit der Ablehnung von Bereichen umgehen, indem sie relevante Funktionen deaktiviert.

Wenn die Grundfunktionen Ihrer Anwendung mehrere Bereiche erfordern, erklären Sie dem Nutzer dies, bevor Sie zur Einwilligung auffordern.

Sie dürfen den Nutzer erst dann noch einmal auffordern, wenn er eindeutig seine Absicht zur Verwendung der jeweiligen Funktion angegeben hat, für die der Umfang erforderlich ist. Ihre Anwendung sollte dem Nutzer den relevanten Kontext und die Begründung liefern, bevor OAuth-Bereiche angefordert werden.

Sie sollten die Anzahl der Bereiche, die Ihre Anwendung gleichzeitig anfordert, minimieren. Verwenden Sie stattdessen die inkrementelle Autorisierung, um Bereiche im Kontext von Features und Funktionen anzufordern.

Sichere Browser verwenden

Im Web dürfen OAuth 2.0-Autorisierungsanfragen nur über Webbrowser mit allen Funktionen gesendet werden. Achte bei anderen Plattformen darauf, den richtigen OAuth-Clienttyp auszuwählen und OAuth entsprechend für deine Plattform zu integrieren. Leite die Anfrage nicht über eingebettete Browserumgebungen weiter, einschließlich WebViews auf mobilen Plattformen wie WebView unter Android oder WKWebView unter iOS. Verwende stattdessen native OAuth-Bibliotheken oder Google Log-in für deine Plattform.

OAuth-Clients manuell erstellen und konfigurieren

Um Missbrauch zu verhindern, können OAuth-Clients nicht programmatisch erstellt oder geändert werden. Sie müssen die Google Developers Console verwenden, um die Nutzungsbedingungen ausdrücklich zu akzeptieren, Ihren OAuth-Client zu konfigurieren und sich auf die OAuth-Überprüfung vorzubereiten.

Für automatisierte Workflows sollten Sie stattdessen Dienstkonten verwenden.