Best Practices

Auf dieser Seite finden Sie einige allgemeine Best Practices für die Integration mit OAuth 2.0. Beachten Sie diese Best Practices zusätzlich zu den spezifischen Anleitungen für Ihre Art von Anwendung und Entwicklungsplattform. Lesen Sie auch die Tipps zur Vorbereitung Ihrer App für die Produktionsphase und die OAuth 2.0-Richtlinien von Google.

Sicher mit Clientanmeldedaten umgehen

Die OAuth-Clientanmeldedaten identifizieren die Identität Ihrer App 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. Hardcodieren Sie die Anmeldedaten nicht, fügen Sie sie nicht in ein Code-Repository ein und veröffentlichen Sie sie nicht öffentlich.

Sichere Handhabung von Nutzertokens

Nutzertokens umfassen sowohl Aktualisierungs- als auch Zugriffstokens, die von Ihrer Anwendung verwendet werden. Tokens sollten im Ruhezustand sicher gespeichert und niemals als Klartext übertragen werden. Verwende ein sicheres Speichersystem, das für deine Plattform geeignet ist, z. B. Keystore unter Android, Schlüsselbunddienste unter iOS und macOS oder Credential Locker unter Windows.

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

Beachten Sie außerdem die folgenden Best Practices für Ihre Plattform:

  • Verschlüsseln Sie bei serverseitigen Anwendungen, die Tokens für viele Nutzer speichern, diese 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 zu erhalten, die gegen Zugriffstokens eingetauscht werden können.

Widerruf und Ablauf von Aktualisierungstokens

Wenn Ihre App ein Aktualisierungstoken für den Offlinezugriff angefordert hat, müssen Sie auch die Ungültigkeit oder den Ablauf des Tokens verarbeiten. Tokens können aus verschiedenen Gründen ungültig werden. So kann es beispielsweise sein, dass sie abgelaufen sind oder der Zugriff Ihrer Apps vom Nutzer oder durch einen automatisierten Prozess widerrufen wurde. Überlegen Sie in diesem Fall sorgfältig, wie Ihre Anwendung reagieren sollte, z. B. ob Sie den Nutzer bei der nächsten Anmeldung auffordern oder seine Daten bereinigen sollten. Wenn Sie über den Widerruf von Tokens informiert werden möchten, binden Sie den Dienst produktübergreifender Kontoschutz in den Dienst ein.

Inkrementelle Autorisierung verwenden

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

Sie sollten keinen Zugriff auf Daten anfordern, wenn sich der Nutzer zum ersten Mal authentifiziert, es sei denn, dies ist für die Hauptfunktionen Ihrer App unerlässlich. Fordern Sie stattdessen nur die spezifischen Bereiche an, die für eine Aufgabe erforderlich sind, und folgen Sie dem Prinzip, die kleinsten und am wenigsten eingeschränkten Bereiche auszuwählen.

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

Ihre Anwendung könnte beispielsweise diesem Modell folgen:

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

Einwilligung für mehrere Bereiche verarbeiten

Wenn Sie mehrere Bereiche gleichzeitig anfordern, gewähren Nutzer möglicherweise nicht alle von Ihnen angeforderten OAuth-Bereiche. Ihre App sollte den Ausschluss von Bereichen verarbeiten, indem sie die entsprechenden Funktionen deaktiviert.

Wenn für die grundlegende Funktionalität Ihrer App mehrere Bereiche erforderlich sind, erklären Sie dem Nutzer dies, bevor Sie die Einwilligung einholen.

Sie dürfen den Nutzer erst dann noch einmal auffordern, wenn er eindeutig seine Absicht erklärt hat, die Funktion zu verwenden, für die der Umfang erforderlich ist. Ihre App sollte dem Nutzer einen relevanten Kontext und eine Begründung liefern, bevor OAuth-Bereiche angefordert werden.

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

Sichere Browser verwenden

Im Web dürfen OAuth 2.0-Autorisierungsanfragen nur über vollwertige Webbrowser gestellt werden. Wählen Sie auf anderen Plattformen den richtigen OAuth-Clienttyp aus und integrieren Sie OAuth entsprechend Ihrer Plattform. Die Anfrage darf nicht über eingebettete Browserumgebungen weitergeleitet werden, einschließlich WebViews auf mobilen Plattformen wie WebView auf Android oder WKWebView auf iOS. Verwenden Sie stattdessen native OAuth-Bibliotheken oder Google Log-in für Ihre 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 die OAuth-Überprüfung vorzubereiten.

Für automatisierte Workflows sollten Sie stattdessen Dienstkonten verwenden.