Approvazione e revoca dei token di accesso

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Revoca dei token di accesso e di aggiornamento

In alcuni casi, alle app è necessario revocare o invalidare esplicitamente i token, ad esempio quando un utente si disconnette da un'app abilitata per OAuth. Se revochi un token, può essere riapprovato in qualsiasi momento prima che scada.

La procedura per la revoca del token è definita dalle specifiche relative alla revoca del token OAuth 2.0.

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

Di seguito è riportata una configurazione di esempio per il criterio OAuthV2 e per l'operazione InvalidateToken. In questo caso, sia il token di accesso sia il token di aggiornamento associato vengono revocati. Tecnicamente, sono entrambi revocati perché il flag cascade è impostato su true. Per saperne di più sul funzionamento del flag Cascade, consulta la sezione 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 gli sviluppatori dovrebbero inviare una richiesta di revoca utilizzando un parametro di ricerca denominato access_token, ad esempio, la variabile di flusso corretta sarà request.queryparam.access_token. Ad esempio, per richiedere il token in un'intestazione HTTP, 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 di token di accesso.
    • Per revocare sia il token di accesso che il token di aggiornamento, specifica il tipo refreshtoken. Quando vede il tipo refreshtoken, Edge presuppone che sia un token di aggiornamento. Se viene trovato questo token di aggiornamento, viene revocato. Se questo token di aggiornamento non viene trovato, Edge controlla 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. Questa operazione non ha alcun effetto.
  • cascade (facoltativo, booleano, 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 imposta 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 cascata può essere true (valore predefinito) o false. Se lo imposti su true, sia il token di accesso sia il token di aggiornamento vengono revocati. Se lo imposti su false, il token di accesso viene revocato e il token di aggiornamento è inutilizzabile. Per ulteriori informazioni, consulta la nota riportata di seguito.
    • Revocare un token di accesso e non revocare il token di aggiornamento associato. Non supportata. Per ulteriori informazioni, consulta la nota riportata 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 è inutilizzabile. Non può essere utilizzato per aggiornare il token di accesso revocato. Il caso d'uso principale per l'attributo cascade si verifica 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.

Approvazione dei token di accesso e di aggiornamento

Utilizza l'operazione ConvalidaToken per "riapprovare" un token revocato. Ciò significa che, quando applichi questa operazione, lo stato del token di accesso o di aggiornamento scelto come target cambia da "revocato" ad "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>

Elemento <Tokens>/<Token>

Identifica la variabile di flusso che specifica il token da convalidare. Se gli sviluppatori devono inviare una richiesta di convalida utilizzando un parametro di ricerca denominato access_token, ad esempio, la variabile di flusso corretta sarà request.queryparam.access_token. Ad esempio, per richiedere il token in un'intestazione HTTP, 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 causa la propagazione della convalida ai token associati. Quindi, se applicato a un token di aggiornamento, viene convalidato anche il token di accesso associato. Se applicato a un token di accesso, viene convalidato anche il token di aggiornamento associato. Se lo imposti su false, viene convalidato solo il token di accesso o di aggiornamento specificato.