Scopri come aggiornare le tue integrazioni API da OAuth 1 a OAuth V2: differenze tecniche, modifiche agli endpoint, gestione dei token e best practice per una migrazione sicura e senza interruzioni.

Il servizio OAuth di Openapi costituisce l'infrastruttura di autenticazione e autorizzazione centralizzata ("chiave di accesso in sicurezza") per l'intero ecosistema API della piattaforma .
Il passaggio dalla versione 1.0.0 alla 2.0.0 (V2) non è un semplice aggiornamento di versione, ma una transizione verso un modello di gestione stateful . Mentre la V1 si limitava alla generazione di token di accesso, la V2 introduce il monitoraggio granulare delle transazioni tramite Wallet, statistiche multidimensionali (Stats) e una gestione del ciclo di vita dei token orientata alla rotazione di sicurezza .
La migrazione richiede l'aggiornamento dei parametri di rete . Il cambiamento più critico riguarda il passaggio dal Top-Level Domain (TLD) nazionale .it a quello internazionale .com .
| Ambiente | URL OAuth 1 (Legacy) | URL OAuth V2 (Attuale) |
|---|---|---|
| Produzione | oauth.openapi.it | oauth.openapi.com |
| Sandbox | test.oauth.openapi.it | test.oauth.openapi.com |
Azione richiesta: È necessario aggiornare tutti i puntatori endpoint nel codice sorgente . Si raccomanda l'uso di variabili d'ambiente o una procedura di "find and replace" globale per riflettere il cambio del TLD da .it a .com .
La V2 adotta una nomenclatura RESTful pluralizzata per la gestione delle risorse token . L'endpoint per le operazioni sui token passa infatti da /token a /tokens .
Nella V2, l'endpoint POST /tokens estende il controllo granulare oltre i semplici campi scopes e ttl . Sono ora supportati i seguenti parametri definiti nello schema TokenCreate: name (identificatore mnemonico per l'audit log), limit_total (tetto massimo di richieste), limit_paid (limite massimo di richieste a pagamento), ips (whitelist di indirizzi IP autorizzati), e wallet_limit (budget specifico allocato dal Wallet globale) .
Mentre in V1 il metodo PATCH era limitato alla modifica parziale dei metadati, in V2 il metodo PATCH /tokens/{token} è standardizzato per supportare il flusso di rotazione (refresh-token) . Questo consente di ruotare le credenziali e aggiornare i permessi senza invalidare l'identificatore esistente, garantendo continuità operativa e sicurezza .
La V2 restituisce l'oggetto TokenDetail (parte dello schema TokenListOrDetail), integrando limiti e metadati precedentemente non disponibili.
Risposta OAuth 1 (Legacy):
{
"scopes": ["POST:valutometro.altravia.com/valutazione"],
"expire": 1634223407,
"token": "5f8711afe4754a532a7a8358",
"success": true,
"message": "",
"error": null
}
Risposta OAuth V2 (TokenDetail) :
{
"name": "Production_Token_01",
"token": "6f9822bgf5862b643b8b9469",
"expire": 1735689600,
"scopes": [
{
"domain": "imprese.openapi.it",
"endpoint": "base",
"method": "GET"
}
],
"limits": {
"limit_total": 1000,
"limit_paid": 500,
"wallet_limit": 50.00
},
"ips": ["192.168.1.1"],
"success": true
}
V2 introduce la gestione economica tramite il modulo Wallet, che garantisce trasparenza transazionale . L'ispezione del saldo avviene ora tramite GET /wallet che sostituisce il vecchio /credit . La tracciabilità transazionale è assicurata da GET /wallet/transactions che permette l'accesso alla cronologia dei movimenti . A differenza del valore statico della V1, la cronologia in V2 è paginata, consentendo analisi dettagliate per account ad alto volume transazionale .
Il sistema /counters della V1, basato su aggregazioni temporali rigide, è sostituito dal motore /stats multidimensionale . La granularità della V2 permette aggregazioni per Token, IP, Dominio e Scope . Le chiamate come GET /stats/ips identificano gli indirizzi IP unici, GET /stats/apis aggrega i consumi per dominio API, e GET /stats/apis/{domain} fornisce la ripartizione esatta degli scope utilizzati all'interno di un dominio specifico . Sono inoltre disponibili registri integrati per la visibilità degli errori tramite /errors .
La versione 2.0.0 introduce endpoint di monitoraggio precedentemente assenti :
| Azione | Endpoint OAuth 1 (Legacy) | Endpoint OAuth V2 (Sostitutivo) | Note Tecniche |
|---|---|---|---|
| Creazione Token | POST /token | POST /tokens | Supporta nuovi parametri limits e ips . |
| Elenco Token | GET /token | GET /tokens | Restituisce TokenListOrDetail . |
| Dettaglio Token | GET /token/{token} | GET /tokens/{token} | Include metadati estesi . |
| Rotazione/Update | PUT /token/{token} | PATCH /tokens/{token} | La V2 preferisce PATCH per rotazione sicura . |
| Eliminazione | DELETE /token/{token} | DELETE /tokens/{token} | Rimozione immediata della risorsa . |
| Dettaglio Scope | Non disponibile | GET /scopes/{id} | Restituisce oggetto ScopeDetail . |
| Credito/Wallet | GET /credit | GET /wallet | Passaggio a sistema a transazioni . |
| Transazioni | Non disponibile | GET /wallet/transactions | Cronologia paginata . |
| Statistiche Totali | GET /counters/total | GET /stats | Metriche aggregate globali . |
In OAuth 1, gli scope erano trattati come semplici array di stringhe, mentre in V2 ogni scope è una risorsa ispezionabile tramite GET /scopes/{id} . La risposta restituisce un oggetto ScopeDetail che include dominio ed endpoint di pertinenza, oltre a requisiti specifici e limiti associati (ScopeLimits) . Si conferma l'importanza del parametro TTL (Time-To-Live): la best practice prevede l'utilizzo di token a scadenza rapida per minimizzare la superficie di attacco . Se non specificato, il sistema imposta un TTL predefinito di un anno, e la V2 facilita questa gestione grazie alla rotazione semplificata tramite PATCH .