Revoca e approvazione dei token

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza documentazione di Apigee Edge.

Informazioni sulla revoca del token

In alcuni casi, le app sono tenute a revocare o invalidare esplicitamente una persona di token. Un caso tipico potrebbe essere quando un utente esce da un'app abilitata per OAuth. A revocato non sarà più utile per l'autorizzazione. Dopo la revoca di un token, se l'app presenta tale token a un proxy API, a un criterio OAuthV2 con un'operazione VerifyAccessToken rifiuterà quel token.

Lo standard per la revoca del token è definito da IETF RFC 7009, la revoca del token OAuth 2.0 la specifica del prodotto.

In alternativa alla revoca di token specifici, puoi revocare gli ID client o l'intero sviluppatore app. Consulta la sezione Revoca e approvare le chiavi dell'app sviluppatore. Rispetto alla revoca di un singolo token, la revoca di un ID client o di un'app sviluppatore ha un impatto più ampio. Quando revocare un ID client o un'app sviluppatore, Apigee rifiuterà tutti i token associati ID client o app sviluppatore e non emetterà più nuovi token per quell'ID client o come app per sviluppatori.

Dopo aver revocato un token, che si tratti di un token di accesso o di un token di aggiornamento, puoi scegliere di riapprovarlo in qualsiasi momento prima che scada. Dopo aver riapprovato il token, Il criterio OAuthV2 di Apigee accetterà di nuovo il token per l'autorizzazione, finché il token scade. La scadenza del token è indipendente dallo stato approvato o revocato del token. Il criterio OAuthV2 di Apigee con un'operazione di ConvalidaAccessToken accetterà il token di accesso solo se è stato approvato (o non revocato) e non è scaduto. Allo stesso modo, il criterio OAuthV2 di Apigee con un'operazione di RefreshAccessToken accetterà il token di aggiornamento solo se è approvato (o non revocato) e non è scaduto.

Esistono due criteri che puoi utilizzare per revocare i token:

Il criterio OAuthV2 può revocare, e anche reintegrare, un singolo token una volta. Il criterio RevocaOAuthV2 è più flessibile in quanto può revocare più token una volta sola, per ID app o ID utente finale. Il resto della pagina descrive l'utilizzo del criterio OAuthV2 per revocare un token o reintegrare un token revocato in precedenza.

Revoca dei token di accesso e di aggiornamento

Ecco un esempio di configurazione per il criterio OAuthV2 che utilizza InvalidateToken Operazione. In questo caso, poiché l'attributo cascade nella L'elemento Token è true, Apigee revoca sia il token di accesso che i relativi token di aggiornamento associato.

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

Per ulteriori informazioni sul funzionamento del flag cascade, consulta la sezione seguente sul Attributi per l'elemento Token.

&lt;Tokens&gt;/&lt;Token&gt; elemento

Identifica la variabile di flusso che specifica il token da revocare. Se gli sviluppatori dovrebbe inviare una richiesta di revoca utilizzando un parametro di query denominata access_token, ad esempio, la variabile di flusso corretta potrebbe essere: request.queryparam.access_token. Per richiedere il token in un'intestazione HTTP, ad esempio, imposta questo valore su request.header.access_token.

Non è possibile revocare un token di accesso in formato JWT. Inoltre, non è possibile utilizzare il criterio OAuthV2 per revocare un token di aggiornamento associato a un token di accesso in JWT formato. Se la variabile di contesto specificata qui fa riferimento a un token di accesso JWT o un token di aggiornamento associato a un token di accesso JWT. Puoi revocare i token di aggiornamento associati ai token di accesso JWT utilizzando il criterio RevocaOAuthV2.

Attributi

  • type (obbligatorio, stringa): il tipo di token identificato dalla variabile specificato. Valori supportati sono accesstoken e refreshtoken:
      .
    • Per revocare un token di accesso, specifica il tipo di token di accesso.
    • Per revocare entrambi i token di accesso e di aggiornamento, specifica il tipo di refreshtoken. Quando rileva digita refreshtoken, Apigee presuppone che il token sia un token di aggiornamento. Se il token di aggiornamento è rilevato, la query viene revocata. Se il token di aggiornamento non viene trovato, Apigee controlla in per vedere se si tratta di un token di accesso. Se il token di accesso esiste, viene revocato.

      Nota: se passi un token già invalidato a un InvalidateToken policy, il criterio non restituisce un errore, anche se ci si può aspettare. Un tale non ha alcun effetto.
  • cascade (facoltativo, booleano, default: true) L'utilizzo principale di questa è revocare un token di aggiornamento senza revocare il token di accesso associato. Prendi in considerazione questi casi:
    • Revoca solo un token di aggiornamento e non revocare il token di accesso associato. Per farlo, imposta <Token> digita su refreshtoken e imposta cascade su false.
    • Revoca sia il token di accesso sia il token di aggiornamento. A questo scopo, imposta <Token> digita in accesstoken. Il valore di cascade può essere true (il predefinita) o false. Se la imposti su true, verranno applicati entrambi i tipi di accesso e il token di aggiornamento sono revocati. Se la imposti su false, l'accesso è stato revocato e il token di aggiornamento è inutilizzabile. Per saperne di più, consulta la nota di seguito. spiegazione.
    • Revoca un token di accesso e non revocare il token di aggiornamento associato. No supportati. Per ulteriori informazioni, consulta la nota riportata di seguito.

Nota: per motivi di sicurezza, se revochi una il token di accesso, anche il token di aggiornamento associato verrà revocato. Pertanto, non puoi utilizzare l'attributo cascade per revocare solo un token di accesso. Ad esempio, se imposti <Token> digita su accesstoken e imposta cascade=false, il token di accesso viene revocato (come previsto); Tuttavia, il token di aggiornamento associato è inutilizzabile. Non può essere utilizzato per aggiornare il token di accesso revocato. Il caso d'uso principale dell'attributo cascade è quando vuoi solo revocare un token di aggiornamento. In tal caso, imposta <Token> digita in refreshtoken, e imposta cascade=false. Il token di aggiornamento verrà revocato, ma l'accesso associato rimarrà valido (fino alla scadenza o alla revoca). Per ulteriori informazioni, leggi questo Discussione del forum della community.

Approvazione dei token di accesso e di aggiornamento in corso...

Utilizzare l'operazione ConvalidaToken per "riapprovare" un token revocato. Vale a dire che quando applichi questo lo stato del token di accesso o di aggiornamento scelto come target viene modificato da "revoked" a "approvato". Puoi convalidare qualsiasi token revocato che non sia già scaduto.

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

&lt;Tokens&gt;/&lt;Token&gt; elemento

Identifica la variabile di flusso che specifica il token da convalidare. Se gli sviluppatori deve inviare una richiesta di convalida utilizzando un parametro di query denominata access_token, ad esempio, la variabile di flusso corretta potrebbe essere: request.queryparam.access_token. Per richiedere il token in un'intestazione HTTP, ad esempio, imposta questo valore su request.header.access_token.

Attributi

  • type (obbligatorio, stringa) Il tipo di token identificato dalla variabile specificato. Valori supportati sono accesstoken e refreshtoken.
  • cascade (facoltativo, booleano): per impostazione predefinita, questa opzione è impostata su true e la convalida si propaga ai token associati. Pertanto, se applicato a un token di aggiornamento, viene convalidato anche il relativo token di accesso. Se applicata a un accesso viene convalidato anche il relativo token di aggiornamento. Se la imposti su false, viene convalidato solo il token di accesso o di aggiornamento specificato.