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 de privilégio mínimo:
Application Default Credentials (ADC): para ambientes com privilégios elevados como comunicações de servidor para servidor. Usado quando o servidor de back-end está criando veículos e viagens e gerenciando-os no Fleet Engine. Para mais detalhes, consulte Application Default Credentials.
JSON Web Tokens (JWT): para ambientes de baixa confiança, como clientes aplicativos 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 JSON Web Tokens.
Por exemplo, se você tiver um app de motorista, os motoristas acessam os 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 quais partes do sistema o app do motorista tem acesso e o que ele pode fazer. Essa abordagem limita o acesso apenas aos dados necessários para concluir as tarefas 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 os de baixa confiança e ambientes de teste.
A autorização especifica quais recursos uma entidade autenticada tem acesso. O Fleet Engine usa contas de serviço com papéis do Google Cloud IAM e JWT declarações que garantem que entidades autenticadas tenham permissões para ver ou alterar os dados que estão solicitando.
Configuração da 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 na sua servidores de back-end e aplicativos clientes.
Confira mais detalhes nas próximas seções.
Configuração da 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.
Atribuir 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.
Configure a comunicação segura com o Fleet Engine (ADC): configure o para se comunicar com a instância do Fleet Engine usando o Application Default Credentials com a conta de serviço *Admin apropriada. 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 Emita Tokens JSON Web.
Configuração de segurança para aplicativos
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 de apps clientes e servidores
O diagrama de sequência a seguir demonstra o servidor e o app cliente fluxo de autenticação e autorização com o Fleet Engine usando o ADC com a servidor de back-end e JWTs com os sites e aplicativos clientes.
O servidor de back-end cria veículos e viagens ou tarefas no Fleet Engine.
Seu servidor de back-end, 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 o respectivo serviço com o papel do IAM apropriado 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.