vai al contenuto principale

Autenticazione nativa

Livebase fornisce un sistema di autenticazione basato su token JWT o, in alternativa, su autenticazione HTTP Basic.

Tutte le risorse della Cloudlet sotto il path /auth sono protette da autenticazione.
Le Cloudlet Livebase supportano nativamente due sistemi di autenticazione: uno basato su JSON Web Token (da qui in poi abbreviato in JWT) o ed uno di tipo HTTP Basic.

JSON Web Token #

JWT è uno standard web per lo scambio di dati definito dalla RFC 7519. Un token JWT è composto da 3 sezioni: l’header, che contiene i dati relativi al tipo di algoritmo usato per la codifica, il payload, che contiene i dati in formato JSON codificati e una signature (firma) che garantisce la veridicità del token.

Oltre ai claim di default contenuti nel payload del token è possibile aggiungere ulteriori claim custom: per maggiori informazioni a riguardo si rimanda alla pagina Authentication settings.

A basso livello, ogni richiesta HTTP alla API deve includere l’header Authorization: Bearer <MyToken>; il token è ottenuto effettuando una richiesta di tipo POST all’endpoint della Cloudlet:

https://<CloudletURL>/public/token/getJwtToken?format=<format>

Attraverso il parametro format è possibile specificare il formato del body della richiesta: json (default) o xml.
Nel body della richiesta devono essere specificati username e password alternativamente in formato JSON o XML, come nell’esempio di seguito per l’utente con username “a1” e password “test”

{"username":"a1","password":"test"}
<credentials><username>a1</username><password>test</password></credentials>

Il token così ottenuto può essere utilizzato sino alla scadenza specificata nell’attributo exp del payload. Per controllare il payload del token è possibile usare lo strumento di debug fornito da JWT.

Prima della scadenza di un token è possibile rinnovarlo, ottenendo un nuovo token, effettuando una richiesta di tipo GET all’endpoint della Cloudlet:

https://<CloudletURL>/auth/token/refreshJwtToken

specificando nell’header Authorization: Bearer <MyToken> il token in scadenza.

Per ulteriori dettagli sui servizi REST esposti dalla Cloudlet per la gestione dei token si rimanda alla pagina.

Basic Authentication #

In un sistema HTTP Basic, le credenziali per autenticare l’utente viaggiano con ogni richiesta verso il server, in un apposito header, e possono essere memorizzate dal browser. Questo implica che il logout è possibile solo dopo un periodo di inattività, o rimuovendo manualmente le credenziali memorizzate lato browser.

A basso livello, ogni richiesta HTTP alla API deve includere l’header Authorization: Basic <MyToken>; il token è risultato dell’encoding Base64 della stringa <Username>:<Password>; se si utilizza cURL è necessario quindi specificare sempre l’header come mostrato sopra. Librerie a più alto livello, come Apollo, vanno configurate opportunamente fornendo il token di autenticazione.

Dettaglio: generare il token