Approvazione e revoca dei token di accesso

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Revocare i token di accesso e di aggiornamento

In alcuni casi, le app sono tenute a revocare o invalidare esplicitamente i token, ad esempio quando un utente esegue la disconnessione da un'app abilitata per OAuth. Se revochi un token, può essere riapprovato in qualsiasi momento prima della scadenza.

La procedura per la revoca dei token è definita dalla specifica di revoca dei token OAuth 2.0.

Apigee Edge fornisce un'operazione InvalidateToken che consente di configurare un endpoint di revoca dei token dedicato. Pubblicando l'URI di questo endpoint, consenti agli sviluppatori di app di invalidare i token emessi da Edge.

Ecco un esempio di configurazione per il criterio OAuthV2 e l'operazione InvalidateToken. In questo caso, vengono revocati sia il token di accesso sia il token di aggiornamento associato. Tecnicamente, entrambi vengono revocati perché il flag cascade è impostato su true. Per ulteriori informazioni sul funzionamento del flag cascade, consulta la sezione degli attributi dell'elemento Token di seguito.

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

Elemento <Tokens>/<Token>

Identifica la variabile di flusso che specifica il token da revocare. Se, ad esempio, gli sviluppatori devono inviare una richiesta di revoca utilizzando un parametro di query denominato access_token, la variabile di flusso corretta sarà: 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 specificata. I valori supportati sono accesstoken e refreshtoken:
    • Per revocare un token di accesso, specifica il tipo accesstoken.
    • Per revocare sia il token di accesso sia il token di aggiornamento, specifica il tipo refreshtoken. Quando vede tipo refreshtoken, Edge presuppone che il token sia un token di aggiornamento. Se viene trovato il token di aggiornamento, viene revocato. Se non viene trovato il token di aggiornamento, Edge verifica 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 criterio InvalidateToken il criterio non restituisce un errore, anche se potresti aspettarti che lo faccia. Un'operazione di questo tipo non ha alcun effetto.
  • cascade (facoltativo, booleano, valore predefinito: true). L'utilizzo principale di questo attributo è revocare un token di aggiornamento senza revocare il token di accesso associato. Considera questi casi:
    • Revoca solo un token di aggiornamento e non revocare il token di accesso associato. Per farlo, imposta il tipo <Token> su refreshtoken e setta cascade su false.
    • Revoca sia il token di accesso sia il token di aggiornamento. Per farlo, imposta il tipo <Token> su accesstoken. Il valore di cascade può essere true (il valore predefinito) o false. Se lo imposti su true, vengono revocati sia il token di accesso sia il token di aggiornamento. Se lo imposti su false, il token di accesso viene revocato e il token di aggiornamento non è utilizzabile. Per ulteriori spiegazioni, consulta la nota di seguito per maggiori spiegazioni.
    • Revoca un token di accesso e non revocare il token di aggiornamento associato. Non supportato. Per ulteriori spiegazioni, consulta la nota di seguito.

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

Approvare i token di accesso e di aggiornamento

Utilizza l'operazione ValidateToken per "riapprovare" un token revocato. Ovvero, quando applichi questa operazione, lo stato del token di accesso o di aggiornamento di destinazione viene modificato da "revocato" a "approvato". Puoi convalidare qualsiasi token revocato che non sia ancora scaduto.

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

Elemento <Tokens>/<Token>

Identifica la variabile di flusso che specifica il token da convalidare. Se, ad esempio, gli sviluppatori devono inviare una richiesta di convalida utilizzando un parametro di query denominato access_token, la variabile di flusso corretta sarà: 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 specificata. I valori supportati sono accesstoken e refreshtoken.
  • cascade (facoltativo, booleano): per impostazione predefinita, questa opzione è impostata su true, e fa sì che la convalida si propaghi ai token associati. Pertanto, se applicata a un token di aggiornamento, viene convalidato anche il token di accesso associato. Se applicata a un token di accesso, viene convalidato anche il token di aggiornamento associato. Se imposti questo valore su false, viene convalidato solo il token di accesso o di aggiornamento specificato.