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

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

Apigee Edge bietet das OAuth 2.0-Framework für sichere 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 eines der die vier OAuth2-Zustimmungstypen an: Clientanmeldedaten password, Implicit und Autorisierungscode – mithilfe der OAuthv2-Richtlinie. 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 Sie in der OAuthv2-Richtlinie eine lange Ablaufzeit für ein Zugriffs- und/oder ein Aktualisierungstoken festlegen, führt dies zu einer Akkumulation von OAuth-Token und zur erhöhten Nutzung des Speicherplatzes auf Cassandra-Knoten.

Die folgende OAuthV2-Beispielrichtlinie bestimmt eine lange Ablaufzeit von 200 Tagen für Aktualisierungstoken:

<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:

  • Das Zugriffstoken ist auf eine eher geringe Ablaufzeit von 30 Minuten eingestellt.
  • Das Aktualisierungstoken hat eine sehr lange Ablaufzeit von 200 Tagen.
  • Wenn der Traffic zu dieser API zehn Anfragen pro Sekunde beträgt, kann das bis zu 864.000 Token pro Tag generieren.
  • 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 von Private Cloud kann dies die Speicherkosten erhöhen. Im schlimmsten Fall könnte das Laufwerk voll werden und zu Laufzeitfehlern oder einem Ausfall führen.

Best Practice

Verwenden Sie eine geeignete, kürzere Ablaufzeit für den OAuth-Zugriff und die Aktualisierungstoken, abhängig von Ihren spezifischen Sicherheitsanforderungen, damit diese Token schnell entfernt werden und so eine Akkumulation verhindert 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