Este documento explica como o Fleet Engine protege a troca de informações entre os três ambientes principais do sistema: o servidor de back-end, o servidor do Fleet Engine e os aplicativos e sites do cliente.
O Fleet Engine gerencia a segurança de duas maneiras fundamentais, usando o princípio do privilégio mínimo:
Application Default Credentials (ADC): para ambientes de privilégio alto, como comunicações entre servidores. Usado quando o servidor de back-end está criando veículos e viagens e gerenciando-os no Fleet Engine. Para mais detalhes, consulte Credenciais padrão do aplicativo.
JSON Web Tokens (JWT): para ambientes de baixa confiança, como aplicativos clientes executados em smartphones e navegadores. Usado para realizar operações de privilégios mais baixos, como atualizar a localização do veículo no Fleet Engine.
Os JWTs necessários para ambientes de baixa confiança são gerados e emitidos pelo servidor de back-end para proteger as chaves secretas da conta de serviço e incluem declarações adicionais específicas para o Fleet Engine. Para mais detalhes, consulte Tokens da Web JSON.
Por exemplo, se você tiver um app de motorista, os motoristas acessam dados do Fleet Engine por meio dele. O app é autenticado usando JWTs recebidos do servidor de back-end. As declarações JWT incluídas, junto com o papel da conta de serviço, determinam a quais partes do sistema o app de motorista tem acesso e o que ele pode fazer. Essa abordagem limita o acesso apenas aos dados necessários para concluir as atribuições de direção.
O Fleet Engine usa essas abordagens de segurança para fornecer o seguinte:
A autenticação verifica a identidade da entidade que faz a solicitação. O Fleet Engine usa o ADC para ambientes de alta confiança e o JWT para ambientes de baixa confiança.
A autorização especifica quais recursos uma entidade autenticada tem acesso. O Fleet Engine usa contas de serviço com papéis do IAM do Google Cloud, além de declarações JWT que garantem que as entidades autenticadas tenham permissões para visualizar ou mudar os dados que estão solicitando.
Configuração de segurança do servidor e do cliente
Para ativar a segurança com o Fleet Engine, configure as contas e a segurança necessárias no servidor de back-end e nos aplicativos e sites de cliente.
O diagrama a seguir mostra uma visão geral das etapas para configurar a segurança no servidor de back-end e nos aplicativos cliente.
Confira mais detalhes nas próximas seções.
Configuração de segurança do servidor de back-end
Um administrador de frota precisa seguir estas etapas:
Criar e configurar contas de serviço:
No console do Google Cloud, crie contas de serviço.
Atribua papéis específicos do IAM às contas de serviço.
Configure o servidor de back-end com as contas de serviço criadas. Para mais detalhes, consulte Funções da conta de serviço.
Configurar a comunicação segura com o Fleet Engine (ADC): configure seu back-end para se comunicar com a instância do Fleet Engine usando as credenciais padrão do aplicativo com a conta de serviço *Admin adequada. Para mais detalhes, consulte Application Default Credentials.
Configurar a comunicação segura com apps clientes (JWT): crie um gerador de token da Web do JSON para criar JWTs com declarações adequadas para aplicativos clientes e monitoramento de sites. Para mais detalhes, consulte Emitir tokens JSON da Web.
Configuração de segurança do aplicativo
Os desenvolvedores de aplicativos precisam incluir uma maneira de buscar JSON Web Tokens gerados pelo servidor de back-end nos apps ou sites do cliente e usá-los para se comunicar com segurança com o Fleet Engine. Para mais detalhes, consulte as instruções de configuração na documentação da Experiência do motorista ou da Experiência do consumidor para os aplicativos necessários.
Fluxo de segurança do servidor e do app cliente
O diagrama de sequência a seguir demonstra o fluxo de autenticação e autorização do servidor e do app cliente com o Fleet Engine usando o ADC com o servidor de back-end e JWTs com os aplicativos e sites do cliente.
O servidor de back-end cria veículos e viagens ou tarefas no Fleet Engine.
O back-end do servidor de uma viagem ou tarefa para um veículo: o app do motorista, quando ativo, recupera a atribuição.
Seu servidor de back-end: assina e emite um JWT para a respectiva conta de serviço com a função do IAM apropriada para a tarefa ou viagem atribuída.
O app cliente: o app cliente usa o JWT recebido para enviar atualizações de localização do veículo ao Fleet Engine.
A seguir
- Crie seu projeto do Fleet Engine.
- Saiba como emitir tokens JSON da Web no seu servidor.
- Saiba mais sobre os papéis de conta de serviço.
- Saiba mais sobre JWTs.