Autenticazione API: API Keys vs JWT vs OAuth 2.0

Una volta ho rilasciato un'API senza autenticazione. Pensavo fosse un semplice strumento interno. Due settimane dopo, il bot di un concorrente ha effettuato lo scraping del nostro database alle 3 del mattino. Quell'errore mi è costato 1.200 $ in bollette AWS e un colloquio imbarazzante con il mio capo.

L'autenticazione non è divertente. Ma se sbagli, ti sveglierà alle 3 del mattino con un alert.

Ecco come scegliere tra i tre pattern principali.

  • API Keys Sono lunghe stringhe casuali. Il client le invia con ogni richiesta. Sono semplici e veloci.

Usale per: • API pubbliche come dati meteo o azionari. • Comunicazione server-to-server. • Prototipazione di una nuova idea. • Microservizi interni.

  • JWT (JSON Web Tokens) Sono token firmati. Contengono informazioni sull'utente e i permessi all'interno del token stesso. Non è necessario effettuare una ricerca nel database per validarli.

Usali per: • Microservizi in cui ogni servizio si valida autonomamente. • App mobile e single page applications. • API ad alto traffico che devono scalare.

Attenzione: non inserire troppi dati in un JWT. Mantienilo piccolo. Includi solo l'ID utente e i ruoli.

  • OAuth 2.0 È un protocollo per la delega. Permette a un utente di concedere l'accesso ai propri dati senza condividere la password. Pensa a "Accedi con Google".

Usalo per: • Integrazioni di terze parti. • Sistemi in cui gli utenti concedono permessi specifici a diverse app. • Software enterprise.

Evitalo per: • API interne semplici. • Piccoli team che hanno bisogno di rilasciare velocemente.

Guida rapida alla decisione:

• API pubblica: Usa API Keys. • Microservizi interni: Usa API Keys. • Backend di un'app mobile: Usa JWT. • SaaS con ruoli utente: Usa JWT. • Accesso di terze parti: Usa OAuth 2.0.

La mia regola empirica:

  1. Inizia con le API Keys per i servizi interni.
  2. Aggiungi JWT quando hai bisogno dell'autenticazione dell'utente.
  3. Usa OAuth 2.0 solo quando un cliente lo richiede o quando costruisci una piattaforma.

Non costruire un sistema perfetto che non viene mai rilasciato. Costruisci un sistema sicuro che funzioni.

Quale pattern di autenticazione usi? Dimmi nei commenti.

Fonte: https://dev.to/sirmax/api-authentication-in-2026-api-keys-vs-jwt-vs-oauth-20-when-to-use-what-h7c