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 sonoaccesstokenerefreshtoken:- 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
refreshtokene setta cascade sufalse. - Revoca sia il token di accesso sia il token di aggiornamento. Per farlo, imposta il tipo <Token>
su
accesstoken. Il valore di cascade può esseretrue(il valore predefinito) ofalse. Se lo imposti sutrue, vengono revocati sia il token di accesso sia il token di aggiornamento. Se lo imposti sufalse, 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.
- Revoca solo un token di aggiornamento e non revocare il token di accesso associato. Per farlo,
imposta il tipo <Token> su
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 sonoaccesstokenerefreshtoken.cascade(facoltativo, booleano): per impostazione predefinita, questa opzione è impostata sutrue, 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 sufalse, viene convalidato solo il token di accesso o di aggiornamento specificato.