Un token web JSON (JWT) è uno standard web aperto utilizzato per autenticare e autorizzare gli scambi di informazioni tra un client e un server. Quando un utente dell'app accede per la prima volta con le credenziali del ruolo appropriate, il server crea e restituisce un JWT codificato e firmato digitalmente da utilizzare con le richieste successive. Questo processo autentica l'utente e lo autorizza ad accedere a percorsi, servizi e risorse in base al suo ruolo dell'account.
Fleet Engine richiede l'utilizzo di token web JSON (JWT) per le chiamate ai metodi dell'API da ambienti con basso livello di attendibilità: smartphone e browser.
Un JWT ha origine sul tuo server, viene firmato, criptato e trasmesso al client per le interazioni successive con il server finché non scade o non è più valido.
Dettagli chiave
- Utilizza le credenziali predefinite dell'applicazione per autenticarti e autorizzarti in Fleet Engine.
- Utilizza un account di servizio appropriato per firmare i JWT. Consulta i ruoli dell'account di servizio Fleet Engine in Nozioni di base su Fleet Engine.
A differenza delle chiavi API, i token JWT hanno una durata breve e limitano le operazioni solo a quelle che il ruolo è autorizzato a eseguire. Per ulteriori informazioni sui token JWT, consulta JSON Web Tokens su Wikipedia. Per informazioni dettagliate sui ruoli di accesso, consulta Ruoli degli account di servizio in questa guida.
Elementi JWT
I JWT contengono un'intestazione e una sezione di claim. La sezione dell'intestazione contiene informazioni come la chiave privata ottenuta dagli account di servizio e l'algoritmo di crittografia. La sezione dei claim contiene informazioni come la data di creazione e il TTL del JWT, i servizi a cui il JWT dichiara di avere accesso e altre informazioni di autorizzazione per l'accesso a livello di ambito, ad esempio l'ID del veicolo di consegna.
La tabella seguente fornisce dettagli descrittivi sui campi JWT in generale, nonché informazioni specifiche su dove trovare i valori di questi campi nel progetto cloud di Fleet Engine.
Campo |
Descrizione |
---|---|
alg |
L'algoritmo da utilizzare. "RS256". |
typ |
Il tipo di token. "JWT". |
bambino |
L'ID chiave privata del tuo account di servizio. Puoi trovare questo valore nel
|
Campo |
Descrizione |
---|---|
iss |
L'indirizzo email del tuo account di servizio, disponibile nel
|
Pub/Sub. |
L'indirizzo email del tuo account di servizio, disponibile nel
|
aud |
Il valore |
iat |
Il timestamp della creazione del JWT, specificato in secondi
trascorsi dal 00:00:00 |
exp |
Il timestamp della scadenza del JWT, specificato in secondi trascorsi
da |
autorizzazione |
A seconda del caso d'uso, può contenere Se specifichi taskid, l'ambito di autorizzazione deve essere un array in uno dei seguenti formati: "taskids": ["task_id_one","task_id_two"]
o "taskids": ["*"] |
Richieste JWT di Fleet Engine
Fleet Engine utilizza rivendicazioni private. L'utilizzo di rivendicazioni private garantisce che solo i clienti autorizzati possano accedere ai propri dati.
Ad esempio, quando il server emette un token web JSON per il dispositivo mobile di un conducente, deve contenere l'affermazione vehicleid
o l'affermazione deliveryvehicleid
con il valore dell'ID veicolo del conducente. Poi,
a seconda del ruolo del conducente, i JWT consentono l'accesso solo per l'ID
veicolo specifico e non per qualsiasi altro ID veicolo arbitrario.
Fleet Engine utilizza i seguenti diritti privati:
Viaggi on demand
-
vehicleid
:- L'SDK Driver utilizza sempre questa rivendicazione, indipendentemente dal fatto che operi su una corsa o su un veicolo. Il backend di Fleet Engine garantisce che il veicolo sia associato alla corsa richiesta prima di apportare la modifica.
- Il JWT può coprire sia le operazioni del veicolo sia quelle della corsa, anche se non è obbligatorio, il che può semplificare l'implementazione della firma JWT.
-
tripid
:- L'SDK Consumer utilizza sempre questa rivendicazione.
- Il JWT può coprire sia le operazioni del veicolo sia quelle del viaggio, anche se non è obbligatorio, il che può semplificare l'implementazione della firma del token.
Attività pianificate
-
deliveryvehicleid
Da utilizzare quando si chiamano API per veicolo di consegna.
-
taskid
Da utilizzare quando si chiamano API per attività.
-
taskids
Da usare quando chiami
BatchCreateTasksAPI
. Questa rivendicazione deve essere in forma di array e l'array deve contenere tutti gli ID attività necessari per completare la richiesta. Non includere rivendicazionidelivervehicleid
,trackingid
otaskid
. -
trackingid
Da usare quando chiami il numero
GetTaskTrackingInfoAPI
. La rivendicazione deve corrispondere all'ID monitoraggio nella richiesta. Non includere rivendicazionidelivervehicleid
,taskid
otaskids
.
Passaggi successivi
- Leggi l'articolo Design di sicurezza di Fleet Engine per comprendere il flusso di autenticazione completo.
- Scopri come emettere token web JSON dal tuo server.