webentwicklung-frage-antwort-db.com.de

OAuth2 und Google API: Ablaufzeit für Zugriffstoken?

Wir haben eine eigenständige Java Anwendung (siehe 'Installierte Anwendung': https://developers.google.com/accounts/docs/OAuth2 ), die regelmäßig ausgeführt wird und verwendet wird Google API (aktualisiert einige Informationen aus Kundendatenbanken/ldap/...).

Um auf Google-APIs zugreifen zu können, speichern wir Benutzernamen und Passwort in der Konfigurationsdatei. Dies ist ein Sicherheitsrisiko, das dem Kunden nicht gefällt. Daher möchten wir stattdessen das OAuth2-Token für langlebigen Zugriff verwenden.

Wie lautet die Standardablaufzeit für Google OAuth2-Zugriffstoken?

Da wir in der Anwendung nur Zugriffstoken haben, kann die App selbst diese nicht aktualisieren, wenn das Zugriffstoken abläuft ...

Persönlich denke ich, dass die Implementierung von OAuth2 in diesem Fall keinen großen Vorteil bringt, aber konzentrieren wir uns auf die Hauptfrage - Standardablaufzeiten.

53
Martin V.

Sie sollten Ihre Anwendung nicht auf der Grundlage einer bestimmten Lebensdauer von Zugriffstoken entwerfen. Nehmen Sie einfach an, sie sind (sehr) kurzlebig.

Nach erfolgreichem Abschluss des installierten OAuth2-Anwendungsflusses erhalten Sie jedoch ein Aktualisierungstoken zurück. Dieses Aktualisierungstoken läuft nie ab, und Sie können es bei Bedarf gegen ein Zugriffstoken austauschen. Speichern Sie die Aktualisierungstoken und verwenden Sie sie, um bei Bedarf Zugriffstoken abzurufen (die dann sofort für den Zugriff auf Benutzerdaten verwendet werden sollten).

BEARBEITEN: Ungeachtet meiner obigen Kommentare gibt es zwei einfache Möglichkeiten, die Ablaufzeit des Zugriffstokens zu ermitteln:

  1. Dies ist ein Parameter in der Antwort (expires_in), Wenn Sie Ihr Aktualisierungstoken austauschen (mithilfe von/o/oauth2/token-Endpunkt). Weitere Details.
  2. Es gibt auch eine API, die die verbleibende Lebensdauer des access_token zurückgibt:

    https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= {accessToken}

    Dies gibt ein json-Array zurück, das einen expires_in - Parameter enthält, der die Anzahl der Sekunden angibt, die in der Lebensdauer des Tokens verbleiben.

98
vlatko

Das Standardablaufdatum für das Zugriffstoken von Google OAUTH2 ist 1 Stunde. Das Ablaufdatum liegt in der Zeit der Unix-Epoche in Millisekunden. Wenn Sie dies in einem für Menschen lesbaren Format lesen möchten, können Sie es einfach hier überprüfen. nix-Zeitstempel für die für Menschen lesbare Zeit

3
Rajkumar Bansal

Hier ist eine weitere Bemerkung zum Ablaufdatum des Google-Zugriffstokens. Ich habe einen Server, der Google Oauth2 verwendet, und er verwendet den Endpunkt https://www.googleapis.com/oauth2/v3/userinfo?access_token=YOUR_ACCESS_TOKEN, um eine erste Authentifizierungsebene durchzuführen. Ich habe festgestellt, dass der Zugriffstoken bei dieser Verwendung eine wesentlich längere Lebensdauer als 60 Minuten hat. Ich bin nicht sicher, ob es verfällt, wenn es nur auf diese Weise verwendet wird.

Hat jemand eine Dokumentation über die Ablaufdauer von Zugriffstoken gesehen, die nur auf diese Weise verwendet wurden?

0
Chris Prince