Antipattern: impostare un periodo di scadenza lungo per i token OAuth

Stai visualizzando la documentazione relativa a Apigee e Apigee ibrido.
Visualizza Documentazione di Apigee Edge.

Apigee fornisce il framework OAuth 2.0 a le API sicure. OAuth2 è uno dei più diffusi sistemi di autenticazione basati su token e schemi di autorizzazione. Consente alle applicazioni client di accedere alle API per conto degli utenti senza dover divulgare il nome utente e la password.

Apigee consente agli sviluppatori di generare token di accesso e/o aggiornamento implementando uno qualsiasi dei i quattro tipi di autorizzazione OAuth2: credenziali client, password, implicit e codice di autorizzazione - utilizzando il criterio OAuthv2. Le applicazioni client utilizzano i token di accesso per utilizzare API sicure. Ogni token di accesso ha una propria scadenza che può essere impostato nel criterio OAuthv2.

I token di aggiornamento vengono emessi facoltativamente insieme ai token di accesso con alcuni dei tipi di autorizzazione. Aggiorna Vengono utilizzati per ottenere nuovi token di accesso validi dopo che il token di accesso originale è scaduto revocata. La data e l'ora di scadenza dei token di aggiornamento possono essere impostate anche nel criterio OAuthv2.

Antipattern

L'impostazione di un periodo di scadenza lungo per un token di accesso e/o un token di aggiornamento nel criterio OAuthv2 porta all'accumulo di token OAuth e all'aumento dell'utilizzo dello spazio su disco sui nodi Cassandra.

Il seguente esempio di criterio OAuthV2 mostra un periodo di scadenza lungo di 200 giorni per i token di aggiornamento:

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
    <SupportedGrantTypes>
      <GrantType>password</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

Nell'esempio riportato sopra:

  • Il token di accesso è impostato con una scadenza ragionevolmente inferiore di 30 minuti.
  • Il token di aggiornamento è impostato con un periodo di scadenza molto lungo di 200 giorni.
  • Se il traffico verso questa API è di 10 richieste al secondo, può generare fino a 864.000 token in un giorno.
  • Poiché i token di aggiornamento scadono solo dopo 200 giorni, rimangono nel datastore (Cassandra) per un lungo periodo, con conseguente accumulo continuo.

Impatto

  • Porta a un aumento significativo dell'utilizzo dello spazio su disco nel datastore (Cassandra).

Best practice

Utilizza una data di scadenza inferiore appropriata per i token di accesso e aggiornamento OAuth in base ai tuoi requisiti di sicurezza specifici, in modo che vengano eliminati rapidamente ed evitato il loro accumulo.

Imposta la data e l'ora di scadenza dei token di aggiornamento in modo che siano validi per un periodo leggermente più lungo rispetto ai token di accesso. Ad esempio, se imposti 30 minuti per il token di accesso, imposta (almeno) 24 ore per il token di aggiornamento.

In questo modo:

  • C'è tempo sufficiente per utilizzare un token di aggiornamento per generare nuovi token di accesso e di aggiornamento dopo la scadenza del token di accesso.
  • I token di aggiornamento scadranno un po' più tardi e possono essere eliminati in modo tempestivo per evitare l'accumulo.

Per approfondire