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.
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 |
Campo |
Descrizione |
---|---|
iss |
L'indirizzo email dell'account di servizio, indicato nell'
Campo |
Pub/Sub. |
L'indirizzo email dell'account di servizio, indicato nell'
Campo |
aud |
|
iat |
Il timestamp di creazione del JWT, specificato in secondi
trascorso da 00:00:00 |
exp |
Il timestamp di scadenza del JWT, specificato in secondi trascorsi
dal giorno |
autorizzazione |
A seconda del caso d'uso, può contenere 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 includeredelivervehicleid
,trackingid
otaskid
rivendicazioni. -
trackingid
Da utilizzare per chiamare il metodo
GetTaskTrackingInfoAPI
. Il reclamo deve corrispondere al monitoraggio ID nella richiesta. Non includeredelivervehicleid
,taskid
otaskids
rivendicazioni.
Passaggi successivi
- Leggi la progettazione di sicurezza di Fleet Engine per comprendere il non è un flusso di autenticazione.
- Scopri come emettere token web JSON dal tuo server.