Token web JSON

Un token JWT (JSON Web Token) è uno standard web aperto utilizzato per l'autenticazione e che autorizzano lo scambio 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 alle route, servizi e risorse in base al ruolo dell'account.

Per le chiamate di metodi API da ambienti a bassa attendibilità, Fleet Engine richiede l'utilizzo di token web JSON (JWT) firmati da un account di servizio appropriato. Gli ambienti a basso livello di attendibilità includono smartphone e browser. Un JWT viene generato sul tuo server, che è un ambiente completamente attendibile. Il JWT viene firmato, criptato e passato al client per le interazioni successive con il server finché non scade o non è più valido. 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.

Al contrario, il backend deve autenticarsi e autorizzare Fleet Engine Utilizzando le Credenziali predefinite dell'applicazione standard i meccanismi dell'impatto del diamante.

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.

exp

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.

autorizzazione

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

Se specifichi ID attività, l'ambito di autorizzazione deve essere un array in uno con i seguenti formati:

"taskids": ["task_id_one","task_id_two"]

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.
    • Il JWT può coprire sia il veicolo che la corsa operazioni, anche se non necessarie, il che può semplificare la firma JWT implementazione.
  • tripid:
    • L'SDK consumer utilizza sempre questa dichiarazione.
    • Il JWT può coprire le operazioni del veicolo e 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 quando si chiamano 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