Un token web JSON (JWT) es un estándar web abierto que se usa para autenticar y autorizar intercambios de información entre un cliente y un servidor. Cuando una app usuario primero accede con las credenciales de rol adecuadas, el servidor crea y devuelve un JWT codificado con firma digital para usarlo en solicitudes posteriores. Este proceso autentica al usuario y lo autoriza a acceder a las rutas, servicios y recursos según el rol de su cuenta.
Para las llamadas a métodos de API desde entornos de baja confianza, Fleet Engine requiere que el uso de tokens web JSON (JWT) firmados por una cuenta de servicio adecuada Los entornos de baja confianza incluyen smartphones y navegadores. Un JWT Se origina en tu servidor, que es un entorno completamente confiable. El token JWT se firma, se encripta y se pasa al cliente para la posterior interacciones hasta que caduque o deje de ser válida. Para un lista de los roles de la cuenta de servicio; consulta los roles de la cuenta de servicio de Flet Engine en Aspectos básicos de Flet Engine.
Por el contrario, tu backend debe autenticarse y autorizarse con Fleet Engine Usar credenciales predeterminadas de la aplicación estándar con mecanismos de control de acceso clave.
A diferencia de las claves de API, los JWT son de corta duración y limitan las operaciones solo a aquellas que está autorizado a realizar el rol. Para obtener más información sobre los JWT, consulta JSON Web Tokens en Wikipedia. Para obtener detalles sobre los roles de acceso, consulta Roles de cuenta de servicio en esta guía.
Elementos JWT
Los JWT contienen un encabezado y una sección de reclamación. La sección del encabezado contiene información, como la clave privada obtenida de las cuentas de servicio y el algoritmo de encriptación. La sección de reclamaciones contiene información como los tiempo de creación, tiempo de actividad, los servicios que el JWT reclama acceso y otra información de autorización para determinar el acceso; para por ejemplo, el ID del vehículo de entrega.
La siguiente tabla proporciona detalles descriptivos sobre los campos JWT en general. así como información específica sobre dónde puedes encontrar los valores para estas en tu proyecto de Cloud de Fleet Engine.
Campo |
Descripción |
---|---|
alg |
El algoritmo que se usará. "RS256". |
tipo |
El tipo de token. “JWT”. |
niño |
El ID de la clave privada de tu cuenta de servicio Puedes encontrar este valor en
Campo |
Campo |
Descripción |
---|---|
iss |
La dirección de correo electrónico de tu cuenta de servicio, que se encuentra en
Campo |
sub |
La dirección de correo electrónico de tu cuenta de servicio, que se encuentra en
Campo |
aud |
El |
iat |
La marca de tiempo en la que se creó el JWT, especificada en segundos
transcurrido desde las 00:00:00 |
exp |
La marca de tiempo en la que el JWT vence, que se especifica en segundos transcurridos
desde |
autorización |
Según el caso de uso, puede contener Si se especifican los taskids, el alcance de la autorización debe ser una matriz en uno de las siguientes formas: "taskids": ["task_id_one","task_id_two"]
o "taskids": ["*"] |
Reclamaciones de JWT de Fleet Engine
Fleet Engine usa reclamaciones privadas. El uso de reclamaciones privadas garantiza que solo los clientes autorizados pueden acceder a sus propios datos.
Por ejemplo, cuando tu servidor emite un token web JSON para el dispositivo móvil de un conductor, debe contener el reclamo vehicleid
o el reclamo deliveryvehicleid
con el valor del ID del vehículo de ese conductor. Luego,
según el rol del conductor, los JWT permiten el acceso solo al vehículo específico
y no ningún otro ID arbitrario de vehículo.
Fleet Engine usa las siguientes reclamaciones privadas:
Viajes on demand
-
vehicleid
:- El SDK del conductor siempre usa esta declaración, independientemente de si opera en un viaje o vehículo. El backend de Fleet Engine se asegura de que el vehículo esté asociados con el viaje solicitado antes de realizar la modificación.
- El JWT puede abarcar las operaciones de vehículos y viajes, incluso si no es obligatorio, lo que puede simplificar la implementación de la firma de JWT.
-
tripid
:- El SDK para consumidores siempre usa esta reclamación.
- El JWT puede abarcar operaciones vehiculares y de viajes incluso si no es necesario, lo que puede simplificar la firma de tokens para implementarlos.
Tareas programadas
-
deliveryvehicleid
Usar cuando se llama por vehículo de entrega APIs
-
taskid
Se usa cuando se llama a las APIs por tarea.
-
taskids
Usar durante llamadas
BatchCreateTasksAPI
Esta reclamación debe estar en forma de array, y la matriz debe contener todos los IDs de tarea necesarios para completar para cada solicitud. No incluyas declaracionesdelivervehicleid
,trackingid
nitaskid
. -
trackingid
Se usa cuando se llama al
GetTaskTrackingInfoAPI
El reclamo debe coincidir con el seguimiento de la solicitud. No incluyasdelivervehicleid
,taskid
otaskids
reclamos.
¿Qué sigue?
- Consulta el diseño de seguridad de Flet Engine para comprender la de autenticación de la organización.
- Obtén más información para emitir tokens web JSON desde tu servidor.