Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.
Apigee bietet eine Reihe von Tools und Richtlinien, mit denen Sie die OAuth 2.0-Token-basierte Authentifizierung implementieren können, um Ihre APIs zu schützen. OAuth2, beschrieben in IETF RFC 6749, ist der am weitesten verbreitete offene Standard für die Authentifizierung und Autorisierung von APIs. Damit wird das Token als Standardformat für Anmeldedaten festgelegt, die Clientanwendungen an API-Implementierungen senden. Die API-Implementierung kann das Token prüfen, um festzustellen, ob der Client zum Zugriff auf die API autorisiert ist.
Mit Apigee können Entwickler Zugriffs- und/oder Aktualisierungs-Token generieren. Dazu müssen Sie einen der vier OAuth2-Grant-Typen – Client-Anmeldedaten, Passwort, Implizit und Autorisierungscode – mit der OAuthv2-Richtlinie implementieren. Außerdem können API-Entwickler mit Apigee benutzerdefinierte Berechtigungen implementieren, einschließlich Berechtigungen, die dem Token Exchange-Muster folgen, wie in IETF RFC 8693 beschrieben. Clientanwendungen verwenden dann Zugriffstoken, um sichere APIs zu nutzen. Für jedes Zugriffstoken gilt ein eigenes Ablaufdatum, das in der OAuthv2-Richtlinie bestimmt werden kann.
Apigee kann optional ein Aktualisierungstoken zusammen mit dem Zugriffstoken für einige der Grant-Typen generieren und zurückgeben. Ein Client verwendet ein Aktualisierungstoken, um ein neues Zugriffstoken abzurufen, nachdem das ursprüngliche Zugriffstoken widerrufen wurde oder abgelaufen ist. Die Ablaufzeit für das Aktualisierungstoken kann auch in der OAuthv2-Richtlinie festgelegt werden.
Anti-Pattern
Wenn Sie in der OAuthv2-Richtlinie eine lange Ablaufzeit für ein Zugriffs- oder ein Aktualisierungstoken festlegen, führt dies zu einem erweiterten Zeitfenster für Sicherheitslücken im Falle eines Tokenlecks, was ein Sicherheitsrisiko darstellt. Außerdem kann es zu einer Anhäufung von OAuth-Tokens im persistenten Speicher kommen, was im Laufe der Zeit zu einer Leistungsminderung führen kann.
Beispiel 1
Die folgende OAuthV2-Beispielrichtlinie bestimmt eine lange Ablaufzeit von 10 Tagen für die Zugriffstokens:
<OAuthV2 name="OAuth-GenerateAccessToken">
<Operation>GenerateAccessToken</Operation>
<ExpiresIn>864000000</ExpiresIn> <!-- 10 days -->
<RefreshTokenExpiresIn>864000000</RefreshTokenExpiresIn> <!-- 10 days -->
<SupportedGrantTypes>
<GrantType>authorization_code</GrantType>
</SupportedGrantTypes>
<GenerateResponse enabled="true"/>
</OAuthV2>Im obigen Beispiel:
- Die Lebensdauer des Zugriffstokens ist auf 10 Tage festgelegt.
- Die Lebensdauer des Aktualisierungstokens ist ebenfalls auf 10 Tage festgelegt.
Auswirkungen
Langlebige Zugriffstokens stellen ein Sicherheitsrisiko dar. Bei einem Token-Leak oder -Verlust läuft ein kurzlebiges Token automatisch ab und wird unbrauchbar. Ein langlebiges Token gewährt jedoch möglicherweise über einen längeren Zeitraum Zugriff auf die API, wodurch sich das Zeitfenster für Sicherheitslücken verlängert.
Ein Zugriffstoken sollte eine kurze Lebensdauer haben, wahrscheinlich etwa 30 Minuten oder weniger. Diese Lebensdauer sollte deutlich kürzer sein als die des Aktualisierungstokens.
Beispiel 2
Die folgende OAuthV2-Beispielrichtlinie bestimmt eine lange Ablaufzeit von 200 Tagen für Aktualisierungstokens:
<OAuthV2 name="OAuth-GenerateAccessToken">
<Operation>GenerateAccessToken</Operation>
<ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
<RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
<SupportedGrantTypes>
<GrantType>authorization_code</GrantType>
</SupportedGrantTypes>
<GenerateResponse enabled="true"/>
</OAuthV2>Im obigen Beispiel:
- Das Zugriffstoken ist auf eine angemessene und kurze 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.
- Aktualisierungstokens laufen nach 200 Tagen ab und werden während der gesamten Lebensdauer im Datenspeicher angesammelt.
Auswirkungen
Eine längere Lebensdauer von Aktualisierungstokens kann im Laufe der Zeit zu Leistungseinbußen führen, da sich eine große Anzahl von Tokens im Datenspeicher ansammelt. In Apigee Hybrid kann eine übermäßige Anhäufung von Tokens auch zu einer Erschöpfung des Speicherplatzes in der Persistenzebene führen.
Best Practice
Verwenden Sie eine Ablaufzeit für den OAuth-Zugriff und die Aktualisierungstokens, die für Ihre spezifischen Sicherheitsanforderungen geeignet ist, um das Zeitfenster für geleakte Tokens zu verringern und eine Token-Akkumulation im Datenspeicher zu vermeiden. Ein guter Ausgangspunkt für die Lebensdauer von Zugriffstokens sind 30 Minuten. Für die Lebensdauer von Aktualisierungstokens sind 24 Stunden ein guter Ausgangspunkt.
Legen Sie die Ablaufzeit für Aktualisierungstoken so fest, dass sie ein Vielfaches der Lebensdauer der Zugriffstoken ist. Wenn Sie beispielsweise 30 Minuten für das Zugriffstoken festlegen, legen Sie die Lebensdauer des Aktualisierungstokens auf 24 Stunden oder 7 Tage fest – je nachdem, was für die Nutzerfreundlichkeit, die Sie unterstützen müssen, angemessen ist.