JSON Web Tokens

JSON Web Token (JWT) é um padrão aberto da Web usado para autenticar e autorizar trocas de informações entre um cliente e um servidor. Quando um app o usuário primeiro fizer login com as credenciais apropriadas do papel, o servidor cria e retorna um JWT codificado e assinado digitalmente para uso com as solicitações subsequentes. Esse processo autentica o usuário e o autoriza a acessar rotas, serviços e recursos com base no papel da conta.

O Fleet Engine exige o uso de JSON Web Tokens (JWTs) assinados por uma a conta de serviço apropriada para chamadas de método de API de objetos de baixa confiança ambientes. Ambientes de baixa confiança incluem smartphones e navegadores. Um JWT tem origem no seu servidor, que é um ambiente totalmente confiável. O JWT é assinado, criptografado e passado ao cliente para o próximo servidor interações até que expirem ou não sejam mais válidas.

Seu back-end deve autenticar e autorizar o Fleet Engine usando mecanismos padrão do Application Default Credentials. Marca use JWTs assinados por uma conta de serviço apropriada. Para um lista de papéis da conta de serviço, consulte os papéis da conta de serviço do Fleet Engine. em Noções básicas do mecanismo de frota.

Ao contrário das chaves de API, os JWTs são de curta duração e limitam as operações apenas àqueles que o papel tem autorização para desempenhar. Para mais informações sobre JWTs, consulte JSON Web Tokens (em inglês) na Wikipédia. Para detalhes sobre papéis de acesso, consulte Serviço funções de conta de serviço neste guia.

Elementos JWT

Os JWTs contêm um cabeçalho e uma seção de declaração. A seção de cabeçalho contém como a chave privada extraída das contas de serviço e as algoritmo de criptografia. A seção de declaração contém informações como o o tempo de criação, o time to live (TTL) e os serviços que o JWT declara e outras informações de autorização para definir o escopo do acesso; para por exemplo, o ID do veículo de entrega.

A tabela a seguir fornece detalhes descritivos sobre os campos JWT em geral, bem como informações específicas sobre onde encontrar os valores dessas no projeto do Cloud do Fleet Engine.

Campos de cabeçalho JWT

Campo

Descrição

alg

O algoritmo a ser usado. "RS256".

typ

O tipo de token. "JWT".

criança

ID da chave privada da conta de serviço. É possível encontrar esse valor private_key_id do arquivo JSON da conta de serviço. Marca use uma chave de uma conta de serviço com o nível correto de permissões.

Campos de declarações JWT

Campo

Descrição

iss

O endereço de e-mail da sua conta de serviço, encontrado na client_email do arquivo JSON da conta de serviço.

sub

O endereço de e-mail da sua conta de serviço, encontrado na client_email do arquivo JSON da conta de serviço.

aud

O SERVICE_NAME da sua conta de serviço, neste caso, https://fleetengine.googleapis.com/

iat

O carimbo de data/hora em que o JWT foi criado, especificado em segundos decorridos desde 00:00:00 UTC, January 1, 1970. Aguarde 10 minutos para o desvio. Se o carimbo de data/hora estiver muito no passado ou no futuro, o de rede pode informar um erro.

exp

O carimbo de data/hora de expiração do JWT, especificado em segundos decorridos desde 00:00:00 UTC, January 1, 1970. A solicitação falhará se o for mais de uma hora no futuro.

autorização

Dependendo do caso de uso, pode conter deliveryvehicleid, trackingid, taskid ou taskids.

Declarações JWT do Fleet Engine

O Fleet Engine usa declarações particulares. O uso de reivindicações particulares garante que apenas autorizados possam acessar os próprios dados.

Por exemplo, quando seu servidor emite um JSON Web Token para o dispositivo móvel de um motorista dispositivo, ele deve conter a declaração vehicleid ou o Declaração de deliveryvehicleid com o valor do ID do veículo desse motorista. Depois, dependendo da função do motorista, os JWTs permitem acesso apenas para o veículo específico e nenhum outro ID arbitrário do veículo.

O Fleet Engine usa as seguintes declarações particulares:

Viagens sob demanda

  • vehicleid
    • O SDK do Driver sempre usa essa declaração, esteja você operando em uma viagem ou veículo. O back-end do Fleet Engine garante que o veículo seja associadas à viagem solicitada antes de fazer a modificação.
    • Como provedor de serviços, você usa essa declaração com um "*" para corresponder a todas veículos. O JWT pode cobrir veículos e viagens operações, mesmo que não sejam necessárias, o que pode simplificar a assinatura JWT implementação.
  • tripid
    • O SDK do consumidor sempre usa essa declaração.
    • Como provedor de serviços, você usa essa declaração com um "*" para corresponder a todas viagens. O JWT pode abranger operações de veículos e viagens, mesmo que não seja obrigatório, o que pode simplificar a assinatura de tokens implementação.

Tarefas agendadas

  • deliveryvehicleid

    Usar ao chamar por veículo de entrega APIs de terceiros.

  • taskid

    Use ao chamar APIs por tarefa.

  • taskids

    Usar ao ligar BatchCreateTasksAPI: Essa declaração deve estar em formato de matriz, e a matriz deve conter todos os IDs de tarefas necessários para concluir o solicitação. Não inclua delivervehicleid, trackingid ou taskid reivindicações.

  • trackingid

    Use ao chamar o método GetTaskTrackingInfoAPI: A reivindicação deve corresponder ao rastreamento na solicitação. Não inclua delivervehicleid, taskid ou taskids reivindicações.

A seguir