Zugriffstokens genehmigen und widerrufen

Zugriffs- und Aktualisierungstokens widerrufen

In einigen Fällen müssen Anwendungen Tokens ausdrücklich widerrufen oder ungültig machen, z. B. wenn sich ein Nutzer bei einer OAuth-fähigen Anwendung abmeldet. Wenn Sie ein Token widerrufen, kann es vor dessen Ablauf jederzeit wieder genehmigt werden.

Die Vorgehensweise zum Widerruf von Tokens wird durch das OAuth 2.0-Token-Widerrufsverfahren definiert.

Apigee bietet einen InvalidateToken-Vorgang, mit dem Sie einen dedizierten Token-Widerrufsendpunkt konfigurieren können. Wenn Sie den URI dieses Endpunkts veröffentlichen, können App-Entwickler Tokens von Apigee ungültig machen.

Folgendes Beispiel zeigt die OAuthV2-Richtlinie und den InvalidateToken-Vorgang. In diesem Fall werden sowohl das Zugriffs- als auch das zugehörige Aktualisierungstoken widerrufen. Technisch werden beide widerrufen, da das Cascade-Flag auf "true" gesetzt ist. Weitere Informationen zur Funktionsweise des Cascade-Flags finden Sie im Abschnitt zu den Attributen des Token-Elements unten.

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

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

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.