Token web JSON

Il token JWT (JSON Web Token) è uno standard web aperto utilizzato per l'autenticazione e che autorizza lo scambio di informazioni tra un client e un server. Quando un'app che l'utente acceda con le credenziali del ruolo appropriate, il server crea e restituisce un JWT codificato e con firma digitale da utilizzare con le richieste successive. Questo processo autentica l'utente e lo autorizza ad accedere alle route, servizi e risorse in base al ruolo dell'account.

Fleet Engine richiede l'utilizzo di token web JSON (JWT) firmati da un account di servizio appropriato per le chiamate ai metodi API da bassa attendibilità ambienti cloud-native. Gli ambienti a basso livello di attendibilità includono smartphone e browser. Un JWT viene generato sul tuo server, che è un ambiente completamente attendibile. JWT viene firmato, criptato e passato al client per il successivo server interazioni fino a quando non scade o non è più valido.

Il backend deve autenticarsi e autorizzare Fleet Engine utilizzando meccanismi standard di Credenziali predefinite dell'applicazione. Marca accertati di utilizzare JWT firmati da un account di servizio appropriato. Per un elenco dei ruoli dell'account di servizio. Vedi i ruoli dell'account di servizio di Fleet Engine in Nozioni di base su Fleet Engine.

A differenza delle chiavi API, i JWT hanno una vita breve e limitano le operazioni solo a quelle che a cui è autorizzato l'esecuzione del ruolo. Per ulteriori informazioni sui JWT, consulta JSON Web Token su Wikipedia. Per maggiori dettagli sui ruoli di accesso, consulta Servizio ruoli dell'account di servizio in questa guida.

Elementi JWT

I JWT contengono un'intestazione e una sezione di attestazione. La sezione dell'intestazione contiene informazioni come la chiave privata ottenuta dagli account di servizio e un algoritmo di crittografia. La sezione delle dichiarazioni contiene informazioni come il creare la durata, la durata, i servizi dichiarati dal JWT accesso e altre informazioni di autorizzazione per limitare l'accesso; della ad esempio l'ID veicolo per la consegna.

La seguente tabella fornisce dettagli descrittivi sui campi JWT in generale, nonché informazioni specifiche su dove trovare i valori per questi del progetto Cloud di Fleet Engine.

Campi intestazione JWT

Campo

Descrizione

alg

L'algoritmo da utilizzare. "RS256".

tipo

Il tipo di token. "JWT".

bambino

L'ID della chiave privata dell'account di servizio. Puoi trovare questo valore nella sezione Campo private_key_id del file JSON dell'account di servizio. Marca assicurati di utilizzare una chiave di un account di servizio con il livello di autorizzazioni corretto.

Campi delle rivendicazioni JWT

Campo

Descrizione

iss

L'indirizzo email dell'account di servizio, indicato nell' Campo client_email del file JSON dell'account di servizio.

Pub/Sub.

L'indirizzo email dell'account di servizio, indicato nell' Campo client_email del file JSON dell'account di servizio.

aud

SERVICE_NAME del tuo account di servizio, in questo caso https://fleetengine.googleapis.com/

iat

Il timestamp di creazione del JWT, specificato in secondi trascorso da 00:00:00 UTC, January 1, 1970. Attendi 10 minuti per il disallineamento. Se il timestamp è troppo lontano nel passato o nel futuro, il valore server potrebbe segnalare un errore.

esp

Il timestamp di scadenza del JWT, specificato in secondi trascorsi dal giorno 00:00:00 UTC, January 1, 1970. La richiesta non va a buon fine se il timestamp è più di un'ora nel futuro.

authorization

A seconda del caso d'uso, può contenere deliveryvehicleid, trackingid, taskid o taskids.

Attestazioni JWT di Fleet Engine

Fleet Engine utilizza rivendicazioni private. L'utilizzo delle rivendicazioni private garantisce che i clienti autorizzati possono accedere ai propri dati.

Ad esempio, quando il server emette un token web JSON per il dispositivo mobile di un conducente dispositivo, deve contenere la dichiarazione vehicleid o Rivendicazione di deliveryvehicleid con il valore dell'ID veicolo del conducente. Poi, a seconda del ruolo del conducente, i JWT consentono l'accesso solo per il veicolo specifico. e non qualsiasi altro ID veicolo arbitrario.

Fleet Engine utilizza le seguenti attestazioni private:

Viaggi on demand

  • vehicleid:
    • L'SDK Driver utilizza sempre questa dichiarazione, sia durante un viaggio o da un veicolo. Il backend di Fleet Engine assicura che il veicolo sia associati alla corsa richiesta prima di apportare la modifica.
    • In qualità di fornitore di servizi, utilizzi questa dichiarazione con il carattere "*" per corrispondere a tutti veicoli. Tieni presente che il JWT può coprire sia il veicolo sia la corsa operazioni, anche se non necessarie, il che può semplificare la firma JWT implementazione.
  • tripid:
    • L'SDK consumer utilizza sempre questa dichiarazione.
    • In qualità di fornitore di servizi, utilizzi questa dichiarazione con il carattere "*" per corrispondere a tutti per i viaggi. Tieni presente che il JWT può coprire sia le operazioni del veicolo sia quelle delle corse, anche se non è richiesta, il che può semplificare la firma del token implementazione.

Attività pianificate

  • deliveryvehicleid

    Da utilizzare per le chiamate in base al veicolo per la consegna su quelle di livello inferiore.

  • taskid

    Da utilizzare per chiamare le API per attività.

  • taskids

    Usa per chiamare BatchCreateTasksAPI. Questa dichiarazione deve essere sotto forma di array, e l'array deve contenere tutti gli ID attività necessari per completare richiesta. Non includere delivervehicleid, trackingid o taskid rivendicazioni.

  • trackingid

    Da utilizzare per chiamare il metodo GetTaskTrackingInfoAPI. Il reclamo deve corrispondere al monitoraggio ID nella richiesta. Non includere delivervehicleid, taskid o taskids rivendicazioni.

Passaggi successivi