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 Ihren Anwendungs- und Entwicklungsplattformtyp. Weitere Informationen findest du in den Hinweisen zur Vorbereitung der Anwendung und in den OAuth 2.0-Richtlinien von Google.

Sicherer Umgang mit Clientanmeldedaten

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 ein Code-Repository übertragen oder öffentlich veröffentlichen.

Sicher mit Nutzertokens umgehen

Nutzertokens umfassen sowohl Aktualisierungs-Tokens als auch Zugriffstokens, die von Ihrer Anwendung verwendet werden. Speichern Sie Tokens sicher inaktive und übertragen Sie sie niemals in Nur-Text. Verwenden Sie ein für Ihre Plattform geeignetes sicheres Speichersystem wie 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 endgültig aus Ihren Systemen.

Außerdem können Sie die folgenden Best Practices für Ihre Plattform berücksichtigen:

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

Umgang mit dem Widerruf und Ablauf von Aktualisierungstokens

Wenn Ihre Anwendung ein Aktualisierungstoken für den Offlinezugriff angefordert hat, müssen Sie auch deren Entwertung oder Ablauf handhaben. Token können aus verschiedenen Gründen entwertet werden, z. B. weil sie abgelaufen sind oder der Zugriff Ihrer Anwendungen vom Nutzer oder durch einen automatisierten Prozess widerrufen wurde. Überlege in diesem Fall genau, wie deine App reagieren soll. Dazu gehört auch, den Nutzer bei der nächsten Anmeldung aufzufordern oder seine Daten zu bereinigen. Wenn Sie über den Widerruf von Tokens 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 bei der ersten Authentifizierung des Nutzers keinen Zugriff auf Daten anfordern, es sei denn, dies ist für die Hauptfunktion Ihrer Anwendung unerlässlich. Fragen Sie stattdessen nur die spezifischen Bereiche an, die für eine Aufgabe erforderlich sind. Beachten Sie dabei das Prinzip der Auswahl der kleinsten und beschränktsten Bereiche.

Bereiche immer im Kontext anfordern, 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 Ihrer 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 erfordert.
    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 stellt dem Nutzer zusätzlichen Kontext für die erneute Zugriffsanfrage zur Verfügung.

Einwilligung für mehrere Bereiche verarbeiten

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

Wenn für die Grundfunktionen Ihrer Anwendung mehrere Bereiche erforderlich sind, erklären Sie dem Nutzer dies, bevor Sie um seine Einwilligung bitten.

Sie dürfen den Nutzer erst dann noch einmal auffordern, wenn er klar angegeben hat, dass er die Funktion verwenden möchte, 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 minimieren, die Ihre Anwendung gleichzeitig anfordert. 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 von Webbrowsern mit vollem Funktionsumfang gestellt werden. Achte auf anderen Plattformen darauf, den richtigen OAuth-Clienttyp auszuwählen und OAuth entsprechend für deine Plattform einzubinden. 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 bestätigen, Ihren OAuth-Client zu konfigurieren und sich auf die OAuth-Überprüfung vorzubereiten.

Für automatisierte Workflows sollten Sie stattdessen Dienstkonten verwenden.