Personal tools
waitress.invalid8080

Integrazioni tramite API: concetti di base

Contenuto della scheda
    Vedi anche...

      Autenticazione

      L'accesso alle API avviene tramite autenticazione basata su Bearer Token.

       

      Il token viene generato a partire da uno user e una password specifica per singola installazione. Una volta creata la credenziale, lo user non è più modificabile. Inoltre, la password è autogenerata e rimane visibile solo in fase di creazione; è comunque possibile richiedere un cambio password in qualunque momento, ma non sarà mai possibile, per l'assistenza Sistemi / Peoplelink recuperarla o visualizzarla in un secondo momento.

      È possibile richiedere più utenze, per finalità diverse e con limitazioni differenti. Il token, di default, ha una validità di dieci minuti.

      Il token deve essere inviato in ogni richiesta HTTP tramite header Authorization. Le richieste prive di token, con token non valido o con token scaduto verranno rifiutate dal sistema con un errore di autenticazione.

      A corredo dell'header Authorization sarà obbligatorio indicare anche l'header X-PL-ApiToken, fornito anch'esso in fase di approvazione della richiesta di accesso.

      Al contrario del Bearer Token, quest'ultimo header non ha scadenza.

       

      Il sistema prevede l'utilizzo di due chiavi API distinte:

      ·         chiave per endpoint in lettura, denominata UniversaRead

      ·         chiave per endpoint in scrittura, denominata UniversaWrite.

       

      Questa separazione permette di applicare un livello aggiuntivo di sicurezza e controllo sugli accessi. Gli endpoint in lettura sono generalmente utilizzati per recuperare dati dal sistema. Gli endpoint in scrittura sono utilizzati per creare, modificare o, in determinati casi, eliminare dati.

      IP whitelist

      Per ottimizzare il livello di sicurezza, l'accesso alle API può essere protetto anche tramite IP whitelist. Questo significa che le chiamate API sono consentite solo se provenienti da indirizzi IP preventivamente autorizzati.

      Durante la richiesta di attivazione delle credenziali, il cliente o partner può comunicare gli indirizzi IP pubblici, sia essi singoli IP o range di indirizzi, sia IPv4 sia IPv6, dai quali verranno effettuate le chiamate. Se non verranno indicate limitazioni agli IP, le API saleranno questo layer di controllo. In caso contrario, le richieste provenienti da IP non presenti in whitelist verranno bloccate.

      In caso di modifica dell'infrastruttura del cliente o partner, ad esempio cambio IP, nuova sede, nuovo server o nuovo ambiente cloud, sarà necessario richiedere l'aggiornamento della whitelist, senza l'obbligatorietà di cambiare o creare una nuova utenza di accesso.

      Abilitazione degli endpoint

      Ogni utenza API può essere configurata per accedere solo a determinati endpoint. Questo consente di limitare l'utilizzo delle API alle sole funzionalità necessarie per l'integrazione del cliente o partner.

       

      La lista degli endpoint è recuperabile direttamente dallo swagger all'indirizzo https://webapi.peoplelinkonline.com/Swagger.

      Di default, salvo indicazioni specifiche, tutti gli endpoint disponibili saranno abilitati. Nel caso in cui il cliente o partner abbia necessità di accedere solo a un sottoinsieme di API, tale informazione deve essere comunicata in fase di richiesta credenziali o successivamente tramite richiesta di ri-configurazione. L'aggiornamento della lista degli endpoint non comporta la necessità di cambiare o creare una nuova utenza di accesso.

      Rate limit

      Le API sono soggette a rate limit.

      Il rate limit è un meccanismo che limita il numero massimo di richieste che un client può effettuare in un determinato intervallo di tempo. Questo sistema serve a:

      ·         garantire la stabilità del servizio

      ·         prevenire utilizzi anomali o eccessivi

      ·         proteggere l'infrastruttura da sovraccarichi

      ·         assicurare un utilizzo equo delle risorse tra tutti i clienti e partner.

       

      Quando il limite viene superato, il sistema può restituire un errore HTTP 429 - Too Many Requests. A corredo, la response includerà alcuni header HTTP utili a conoscere lo stato corrente del rate limit, ovvero:

      ·         X-RateLimit-Limit: numero massimo di richieste consentite nella finestra temporale corrente

      ·         X-RateLimit-Remaining: numero di richieste ancora disponibili nella finestra temporale corrente

      ·         Retry-After: tempo, in secondi, da attendere prima di effettuare una nuova richiesta, normalmente presente in caso di errore 429.

       

      Il client che utilizza le API deve gestire correttamente il rate limit, evitando di continuare a inviare richieste quando il limite è stato raggiunto.

      In particolare, è consigliato:

      ·         leggere gli header di rate limit restituiti dal server

      ·         rallentare automaticamente l'invio delle richieste quando X-RateLimit-Remaining è basso

      ·         sospendere temporaneamente le chiamate in caso di risposta 429

      ·         rispettare il valore indicato da Retry-After, se presente

      ·         implementare meccanismi di retry controllato

      ·         evitare retry immediati e continui

      ·         utilizzare una strategia di backoff progressivo in caso di errori ripetuti.

       

      Il rate limit impostato di default sulle API è di 20 chiamate al minuto per ogni end-point. È possibile richiedere una modifica di tale valore tramite lo stesso caso AOL o con un caso ad-hoc, indicando il tipo di esigenza, l'end-point coinvolto e il volume previsto di chiamate.

      Sicurezza e gestione delle credenziali

      Le credenziali API devono essere conservate in modo sicuro.

      È responsabilità del cliente o partner evitare la condivisione non autorizzata di:

      ·         Bearer Token

      ·         X-PL-ApiToken

      ·         eventuali credenziali o informazioni tecniche/riservate associate all'utenza.

       

      Le chiavi non devono essere inserite direttamente nel codice sorgente, soprattutto se versionato in repository condivisi.

      È consigliato utilizzare sistemi sicuri di gestione dei segreti, come:

      ·         variabili d'ambiente

      ·         secret manager

      ·         vault aziendali

      ·         configurazioni cifrate.

       

      In caso di sospetta compromissione delle credenziali, è necessario richiederne immediatamente la revoca e la rigenerazione. Inoltre, l'accesso alle API può essere revocato o limitato in caso di:

      ·         utilizzo non conforme

      ·         superamento ripetuto dei limiti consentiti

      ·         tentativi di accesso non autorizzati

      ·         utilizzo da IP non autorizzati

      ·         compromissione delle credenziali

      ·         violazione degli accordi contrattuali o tecnici.

       

      Eventuali modifiche alla configurazione dell'utenza API, come aggiornamento IP, rigenerazione chiavi o abilitazione/disabilitazione endpoint, devono essere richieste tramite i canali di supporto previsti.

      Scadenza delle credenziali

      Le credenziali di accesso alle API possono essere soggette ad una data di scadenza.

       

      La scadenza dell'utenza è definita manualmente, con indicazione di una data assoluta (es.: il 31/12/2027), e definisce il termine entro il quale le credenziali API risultano valide e utilizzabili per l'accesso agli endpoint autorizzati.

      Quando un'utenza API si avvicina alla data di scadenza, il sistema segnala tale informazione tramite l'header HTTP di risposta Sunset. L'header Sunset viene valorizzato solo quando il tempo residuo alla scadenza effettiva è compreso nei 90 giorni precedenti la data di scadenza.

      Fino alla data indicata nell'header, l'utenza può continuare a utilizzare le API, salvo eventuali revoche, limitazioni o sospensioni. Successivamente alla scadenza, le chiamate effettuate con tale utenza saranno considerate non valide e verranno rifiutate dal sistema.

       

      La presenza dell'header Sunset non indica un errore nella chiamata, ma rappresenta un'informazione preventiva sulla futura scadenza dell'utenza API. L'assenza dell'header Sunset indica che, al momento della chiamata, l'utenza non si trova nella finestra di preavviso dei 90 giorni precedenti la scadenza oppure che non è prevista una scadenza configurata.

      Logging delle chiamate API

      Tutte le chiamate effettuate verso le API possono essere registrate dal sistema a fini di sicurezza, monitoraggio, audit e supporto tecnico. Il logging delle chiamate consente di tracciare l'utilizzo delle API e di verificare eventuali anomalie, errori applicativi, superamenti dei limiti di utilizzo o tentativi di accesso non autorizzati.

       

      Le informazioni registrate possono includere, a titolo esemplificativo:

      ·         Data e ora della richiesta

      ·         Endpoint invocato

      ·         Metodo http

      ·         Indirizzo IP sorgente

      ·         Esito della chiamata

      ·         Codice HTTP restituito

      ·         Headers

      ·         Tempo di esecuzione

      ·         Eventuali indicazioni tecniche in caso di errori o eccezioni verificatesi in fase di chiamata agli endpoint.

       

      user info:{'id_operatore': '""', 'id_struttura': '""', 'tipo_documento': '', 'sisbot_allowed': 'false'}