Tokens widerrufen und genehmigen

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Informationen zum Widerruf von Tokens

In einigen Fällen müssen Anwendungen einzelne Tokens explizit widerrufen oder ungültig machen. Ein typischer Fall könnte sein, wenn sich ein Nutzer von einer OAuth-fähigen Anwendung abmeldet. Ein widerrufenes Token ist nicht mehr für die Autorisierung verwendbar. Wenn eine Anwendung dieses Token nach dem Widerruf einem API-Proxy präsentiert, lehnt eine OAuthV2-Richtlinie mit einem VerifyAccessToken-Vorgang dieses Token ab.

Der Standard für den Widerruf von Tokens wird durch IETF RFC 7009, die OAuth 2.0-Spezifikation für den Tokenwiderruf, definiert.

Als Alternative zum Widerrufen bestimmter Tokens können Sie Client-IDs oder ganze Entwickleranwendungen widerrufen. Weitere Informationen finden Sie unter Entwickleranwendungsschlüssel widerrufen und genehmigen. Im Vergleich zum Widerrufen eines einzelnen Tokens hat der Widerruf einer Client-ID oder Entwickleranwendung größere Auswirkungen. Wenn Sie eine Client-ID oder Entwickleranwendung widerrufen, lehnt Apigee alle mit dieser Client-ID oder Entwickleranwendung verknüpften Tokens ab und gibt keine neuen Tokens für diese Client-ID oder Entwickleranwendung mehr aus.

Nach dem Widerrufen eines Tokens, entweder eines Zugriffs- oder eines Aktualisierungstokens, können Sie dieses Token jederzeit wieder neu genehmigen, bevor es abläuft. Nach der erneuten Genehmigung des Tokens akzeptiert die Apigee OAuthV2-Richtlinie dieses Token wieder für die Autorisierung, bis das Token abläuft. Der Ablauf von Tokens ist unabhängig vom Genehmigungs- oder Widerrufsstatus. Die Apigee OAuthV2-Richtlinie mit einem ValidateAccessToken-Vorgang akzeptiert ein Zugriffstoken nur, wenn dieses Token genehmigt (oder nicht widerrufen) und nicht abgelaufen ist. Analog akzeptiert die Apigee OAuthV2-Richtlinie mit einem RefreshAccessToken-Vorgang ein Aktualisierungstoken nur, wenn dieses Token genehmigt (oder nicht widerrufen) und nicht abgelaufen ist.

Es gibt zwei Richtlinien, mit denen Sie Tokens widerrufen können:

Die OAuthV2-Richtlinie hat die Möglichkeit, nur ein Token auf einmal zu widerrufen oder zu reaktivieren. Die RevokeOAuthV2-Richtlinie ist flexibler, da sie mehrere Tokens gleichzeitig nach Anwendungs-ID oder Endnutzer-ID widerrufen kann. Im Rest dieser Seite wird beschrieben, wie Sie mit der OAuthV2-Richtlinie ein Token widerrufen oder ein zuvor widerrufenes Token reaktivieren.

Zugriffs- und Aktualisierungstokens widerrufen

Folgendes Beispiel zeigt eine Konfiguration der OAuthV2-Richtlinie, die den InvalidateToken-Vorgang verwendet. Da das Attribut cascade für das Element Token „true“ ist, widerruft Apigee sowohl das Zugriffstoken als auch das zugehörige Aktualisierungstoken.

  <OAuthV2 name="InvalidateToken">
    <Operation>InvalidateToken</Operation>
    <Tokens>
      <Token type="accesstoken" cascade="true">request.queryparam.token</Token>
    </Tokens>
  </OAuthV2>
  

Weitere Informationen zur Funktionsweise des cascade-Flags finden Sie im Abschnitt zu den Attributen für das Token-Element unten.

<Tokens>/<Token>-Element

Gibt die Ablaufvariable an, die das zu widerrufende Token bestimmt. Wenn Entwickler eine Widerrufsanfrage mit einem Abfrageparameter namens access_token senden müssen, ist die korrekte Ablaufvariable: request.queryparam.access_token. Um das Token in einem HTTP-Header anzufordern, können Sie diesen Wert beispielsweise auf request.header.access_token setzen.

Ein Zugriffstoken im JWT-Format kann nicht widerrufen werden. Außerdem ist es nicht möglich, die OAuthV2-Richtlinie zu verwenden, um ein Aktualisierungstoken zu widerrufen, das mit einem Zugriffstoken im JWT-Format verknüpft ist. Ein Laufzeitfehler tritt auf, wenn sich die hier angegebene Kontextvariable auf ein JWT-Zugriffstoken oder auf ein Aktualisierungstoken, das mit einem JWT-Zugriffstoken verknüpft ist, bezieht. Sie können die mit JWT-Zugriffstokens verknüpften Aktualisierungstokens mithilfe der RevokeOAuthV2-Richtlinie widerrufen.

Attribute

  • type (erforderlich, String): Der Tokentyp, der von der angegebenen Variable angegeben wird. Unterstützte Werte sind accesstoken und refreshtoken:.
    • Um ein Zugriffstoken zu widerrufen, müssen Sie als Typ "accesstoken" angeben.
    • Geben Sie ein Aktualisierungs-Token an, um die Zugriffs- und Aktualisierungstoken zu widerrufen. Ist dies der Fall, geht Apigee davon aus, dass es sich um ein Aktualisierungstoken handelt. Wenn dieses Aktualisierungstoken gefunden wird, wird es widerrufen. Wenn dieses Aktualisierungstoken nicht gefunden wird, prüft Apigee, ob es sich um ein Zugriffstoken handelt. Wenn das Zugriffstoken vorhanden ist, wird es widerrufen.

      Hinweis: Wenn Sie ein bereits ungültiges Token an eine InvalidateToken-Richtlinie übergeben, gibt die Richtlinie keinen Fehler zurück. Ein solcher Vorgang hat keine Auswirkungen.
  • cascade (optional, boolesch, Standardeinstellung: true) Dieses Attribut dient hauptsächlich dazu, ein Aktualisierungstoken zu widerrufen, ohne das zugehörige Zugriffstoken zu widerrufen. Beachten Sie folgende Fälle:
    • Nur ein Aktualisierungs-, aber nicht das zugehörige Zugriffstoken widerrufen. Dazu setzen Sie den <Token>-Typ auf refreshtoken und die Kaskadierung auf false.
    • Widerrufen Sie sowohl das Zugriffstoken als auch das Aktualisierungstoken. Setzen Sie dazu den <Token>-Typ auf accesstoken. Der Wert von "cascade" kann entweder true (Standardeinstellung) oder false sein. Wenn Sie true festlegen, werden sowohl das Zugriffstoken als auch das Aktualisierungstoken widerrufen. Wenn Sie false festlegen, wird das Zugriffstoken widerrufen und das Aktualisierungstoken kann nicht verwendet werden. Weitere Informationen hierzu finden Sie im Hinweis weiter unten.
    • Ein Zugriffstoken, aber nicht das zugehörige Aktualisierungstoken widerrufen. Wird nicht unterstützt. Weitere Informationen finden Sie im Hinweis unten.

Hinweis: Wenn Sie ein Zugriffstoken widerrufen, wird auch das zugehörige Aktualisierungstoken widerrufen. Sie können das Attribut "cascade" also nicht verwenden, um nur ein Zugriffstoken zu widerrufen. Wenn Sie beispielsweise den <Token>-Typ auf accesstoken setzen und cascade=false festlegen, wird das Zugriffstoken widerrufen (wie erwartet). Das verknüpfte Aktualisierungstoken kann jedoch nicht verwendet werden. Er kann nicht verwendet werden, um das widerrufene Zugriffstoken zu aktualisieren. Der hauptsächliche Anwendungsfall für das Attribut "cascade" besteht darin, dass Sie nur ein Aktualisierungstoken widerrufen möchten. Setzen Sie in diesem Fall den <Token>-Typ auf refreshtoken und legen Sie cascade=false fest. Das Aktualisierungstoken wird widerrufen, aber das zugehörige Zugriffstoken bleibt gültig, bis es abläuft oder widerrufen wird. Weitere Informationen finden Sie in dieser Community-Diskussion.

Zugriffs- und Aktualisierungstokens genehmigen

Verwenden Sie die ValidateToken-Operation, um ein widerrufenes Token „neu“ zu genehmigen. Das heißt, wenn Sie diesen Vorgang anwenden, ändert sich der Status des relevanten Zugriffs- oder Aktualisierungstoken von „Widerrufen“ auf „Genehmigt“. Sie können alle widerrufenen Tokens prüfen, die nicht bereits abgelaufen sind.

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

<Tokens>/<Token>-Element

Gibt die Ablaufvariable an, die das zu validierende Token bestimmt. Wenn Entwickler eine Validierungsanfrage mit einem Abfrageparameter namens access_token senden müssen, ist die korrekte Ablaufvariable: request.queryparam.access_token. Um das Token in einem HTTP-Header anzufordern, können Sie diesen Wert beispielsweise auf request.header.access_token setzen.

Attribute

  • type (erforderlich, String): Der Tokentyp, der von der angegebenen Variable angegeben wird. Unterstützte Werte sind accesstoken und refreshtoken.
  • cascade (optional, boolesch): Standardmäßig ist diese Option auf true gesetzt und die Validierung wird an die verknüpften Tokens weitergegeben. Bei Anwendung auf ein Aktualisierungstoken wird das zugehörige Zugriffstoken ebenfalls validiert. Bei Anwendung auf ein Zugriffstoken wird auch das zugehörige Aktualisierungstoken validiert. Wenn Sie false festlegen, wird nur das angegebene Zugriffs- oder Aktualisierungstoken validiert.