Anti-Pattern: Lange Ablaufzeit für OAuth-Tokens festlegen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Apigee Edge bietet das OAuth 2.0-Framework zum Schutz von APIs. OAuth2 ist eines der gängigsten offenen, tokenbasierten Authentifizierungs- und Autorisierungsschemen. Damit können Client-Anwendungen im Namen von Nutzern auf APIs zugreifen, ohne dass die Nutzer Nutzernamen und Passwort preisgeben müssen.

Mit Apigee Edge können Entwickler Zugriffs- und/oder Aktualisierungstokens generieren, indem sie mithilfe der OAuthv2-Richtlinie einen der vier OAuth2-Zustimmungstypen – Clientanmeldedaten, Passwort, implizit und Autorisierungscode – implementieren. Clientanwendungen verwenden Zugriffstoken, um sichere APIs zu nutzen. Für jedes Zugriffstoken gilt ein eigenes Ablaufdatum, das in der OAuthv2-Richtlinie bestimmt werden kann.

Aktualisierungstoken werden optional mit einigen Grant-Typen zusammen mit Zugriffstoken ausgegeben. Mit Aktualisierungstoken werden neue, gültige Zugriffstoken abgerufen, nachdem das ursprüngliche Zugriffstoken abgelaufen oder widerrufen wurde. Die Ablaufzeit für Aktualisierungstoken kann auch in der OAuthv2-Richtlinie festgelegt werden.

Anti-Pattern

Wenn in der OAuthv2-Richtlinie eine lange Ablaufzeit für ein Zugriffstoken und/oder ein Aktualisierungstoken festgelegt wird, sammeln sich OAuth-Tokens an und erhöht den Speicherplatz auf den Cassandra-Knoten.

Das folgende Beispiel für eine OAuthV2-Richtlinie zeigt eine lange Ablaufzeit von 200 Tagen für Aktualisierungstokens:

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
    <SupportedGrantTypes>
      <GrantType>password</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

Im obigen Beispiel gilt Folgendes:

  • Das Zugriffstoken hat eine relativ kürzere Ablaufzeit von 30 Minuten.
  • Das Aktualisierungstoken hat eine sehr lange Ablaufzeit von 200 Tagen.
  • Wenn der Traffic zu dieser API 10 Anfragen/Sekunde beträgt, können bis zu 864.000 Tokens pro Tag generiert werden.
  • Da die Aktualisierungstoken erst nach 200 Tagen ablaufen, bleiben sie für einen längeren Zeitraum im Datenspeicher (Cassandra), was zu einer ständigen Akkumulation führt.

Auswirkungen

  • Bedingt eine erhebliche Steigerung der Speicherplatznutzung im Datenspeicher (Cassandra).
  • Für Nutzer der privaten Cloud könnte dies die Speicherkosten erhöhen oder im schlimmsten Fall das Laufwerk voll werden und zu Laufzeitfehlern oder einem Ausfall führen.

Best Practices

Verwenden Sie je nach Ihren spezifischen Sicherheitsanforderungen eine kürzere Ablaufzeit für OAuth-Zugriffs- und Aktualisierungstokens, damit diese schnell dauerhaft gelöscht werden und eine Akkumulation vermieden wird.

Legen Sie die Ablaufzeit für Aktualisierungstoken so fest, dass sie etwas länger ist als die der Zugriffstoken. Beispiel: Wenn Sie 30 Minuten für das Zugriffstoken bestimmen, bestimmen Sie 60 Minuten für das Aktualisierungstoken.

Dadurch wird Folgendes gewährleistet:

  • Nach der Ablauf des Zugriffstokens können Sie einige Aktualisierungstokens verwenden, um neue Zugriffs- und Aktualisierungstokens zu generieren.
  • Die Aktualisierungstoken laufen etwas später ab und können zeitnah gelöscht werden, um eine Akkumulation zu vermeiden.

Weitere Informationen