Segurança last mile

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

A segurança last mile protege os serviços de back-end que têm proxy de serviços de API. O objetivo principal da segurança last mile é evitar ataques chamados de "última geração", em que um desenvolvedor de apps descobre o URL de um serviço de back-end e ignora os proxies de API para alcançar diretamente o URL de back-end.

Veja, a seguir, as principais opções para configurar a segurança last mile:

  • TLS/SSL do cliente
  • Autenticação de saída
  • Módulo tls do Node.js

TLS/SSL do cliente

O principal mecanismo para proteger a last mile é TLS/SSL do cliente, também conhecido como "autenticação mútua".

Consulte Como configurar o TLS da borda para o back-end (nuvem e nuvem privada).

Autenticação de saída

Também é possível aplicar a segurança last mile exigindo-se que o proxy de API apresente uma credencial ao serviço de back-end.

Por exemplo, talvez você queira que um proxy de API apresente uma chave de API no serviço de back-end. Também é possível ter um proxy de API para acessar e apresentar um token de acesso de credenciais do cliente OAuth.

Chave de API

É possível aplicar as chaves de API a solicitações de saída de proxies de API para serviços de back-end. Isso pressupõe que o serviço de back-end é uma API capaz de emitir e validar chaves de API.

Se você configurar um proxy de API para apresentar uma chave de API em solicitações de saída, precisará armazená-la em um local onde ela possa ser recuperada pelo proxy de API no ambiente de execução. Um local disponível para armazenar chaves de API é um mapa de chave-valor. Consulte a política de operações de mapeamento de chave-valor.

Use o tipo de política AssignMessage para adicionar a chave de API como um cabeçalho HTTP, parâmetro de consulta ou elemento de payload à solicitação de saída. Consulte Política de atribuição de mensagens.

Credenciais de cliente OAuth

É possível usar as credenciais de cliente OAuth para adicionar uma camada de revogação às chaves de API. Se os serviços de back-end forem compatíveis com credenciais de cliente OAuth, configure um proxy de API para apresentar um token de acesso a credenciais de cliente a cada solicitação.

O proxy de API precisa ser configurado para executar uma chamada para receber o token de acesso do endpoint. O proxy de API também é necessário para armazenar em cache o token de acesso, para evitar que ele receba um novo token de acesso para cada chamada.

É possível usar diversas abordagens para implementar credenciais de cliente de saída.

Modifique esse exemplo para chamar o endpoint de token de modo a receber um token de acesso. Neste exemplo, foi usado JavaScript para anexar o token à solicitação de saída como um cabeçalho de autorização HTTP. Também é possível usar a política de atribuição de mensagens para esse fim.

SAML

Use o tipo de política GenerateSAMLAssertion para anexar uma declaração SAML a uma mensagem de solicitação XML de saída, do proxy de API para um serviço de back-end. Assim, o serviço de back-end pode executar autenticação e autorização em solicitações recebidas de proxies de API.

Consulte as políticas de declaração de SAML.

Node.js

Se o destino do proxy da API for um aplicativo Node.js, use o módulo tls do Node.js para criar conexões seguras com os serviços de back-end. Você faz solicitações de saída com o módulo tls da mesma forma que faria normalmente no Node.js. Basicamente, você precisa adicionar chaves e certificados do lado do cliente (arquivos .pem) ao diretório resources/node e carregá-los no script. Para informações sobre como usar o módulo tls e os métodos dele, consulte a documentação do módulo tls do Node.js. Para mais informações, consulte Como entender o suporte do Edge para módulos Node.js.