Esta página aplica-se ao Apigee e ao Apigee Hybrid.
  
    Veja a documentação do 
    Apigee Edge.
  
  
      
 
  

Vídeo: veja este breve vídeo para uma introdução sobre como proteger a sua API.
O que vai aprender
Este tutorial explica como:
- Crie um proxy de API que exija uma chave da API.
 - Crie um produto API, um programador e uma app de programador.
 - Chame a API com uma chave da API.
 
É importante proteger a sua API contra acesso não autorizado. Uma forma de o fazer é com chaves da API.
Quando uma app faz um pedido a um proxy de API configurado para validar uma chave da API, a app tem de fornecer uma chave válida. Em tempo de execução, a política de chave da API de verificação verifica se a chave da API fornecida:
- É válido
 - Não foi revogada
 - Corresponde à chave da API do produto da API que expõe os recursos pedidos
 
Se a chave for válida, o pedido é permitido. Se a chave for inválida, o pedido resulta numa falha de autorização.
Crie o proxy de API
Apigee na Cloud Console
Na Google Cloud consola, aceda à página Desenvolvimento de proxy > Proxies de API.
- Selecione a sua organização no selecionador de projetos do painel do Google Cloud. O nome da organização é igual ao nome do seu projeto do Google Cloud.
 - Clique em + Criar.
 - No painel Criar um proxy, em Modelo de proxy, selecione Proxy inverso (mais comum). Um proxy inverso encaminha o tráfego recebido para um serviço de back-end.
 - Configure o proxy da seguinte forma:
Nome Valor Nome do proxy helloworld_apikeyCaminho base /helloapikeyO caminho base do projeto faz parte do URL usado para fazer pedidos ao proxy de API.
Descrição hello world protected by API keyDestino (API existente) http://mocktarget.apigee.netIsto define o URL de destino que o Apigee invoca num pedido ao proxy da API. Este destino devolve apenas uma resposta simples:
Hello, Guest!. - Clicar em Seguinte.
 - Implemente (opcional). Deixe estes campos em branco.
 - Clique em Criar.
 - O Apigee cria o novo proxy e apresenta o resumo dos detalhes do proxy no painel Resumo do proxy.
 
IU clássica
- Aceda à IU do Apigee e inicie sessão.
 - Selecione a sua organização através do menu pendente no canto superior esquerdo da IU.
 - 
          
Clique em Develop > API Proxies para apresentar a lista de proxies de API.
 - Clique em Criar novo.

 - No assistente Criar um proxy, selecione Proxy inverso (mais comum).
 - Configure o proxy da seguinte forma:
Neste campo faça o seguinte Nome do proxy Introduza: helloworld_apikeyCaminho base do projeto Alterar para:
/helloapikeyO caminho base do projeto faz parte do URL usado para fazer pedidos ao proxy da API.
Descrição Introduza: hello world protected by API keyDestino (API existente) Introduza:
http://mocktarget.apigee.netIsto define o URL de destino que o Apigee invoca num pedido ao proxy da API. Este destino devolve apenas uma resposta simples:
Hello, Guest!. - Clicar em Seguinte.
 - Na página Políticas comuns, selecione Chave da API. Esta opção adiciona automaticamente duas políticas ao seu proxy de API e cria um produto de API necessário para gerar a chave da API.
 - Clicar em Seguinte.
 - Na página Resumo, certifique-se de que selecionou um ambiente de implementação e clique em Criar e implementar.
 - Clique em Editar proxy para apresentar a página de vista geral do proxy de API.
 
Veja as políticas
Apigee na Cloud Console
- No painel Resumo do proxy para o proxy helloworld_apikey, clique no separador Desenvolver.
 - No menu Políticas, clique em Adicionar política.
 - No painel Criar política, em Segurança, selecione Validar chave da API.
 - No painel Validar chave da API, preencha os campos obrigatórios nas secções
        Nome e Nome a apresentar com os seguintes valores:
        
- Nome: introduza um nome da política. Por exemplo, 
VerifyAPIKey. - Nome a apresentar: introduza o nome da política para utilização na IU. Por exemplo, 
Verify API Key. 
 - Nome: introduza um nome da política. Por exemplo, 
 - Clique em Criar.
 - Clique em para adicionar outra política.
 - No painel Criar política, em Mediação, selecione Atribuir mensagem.
 - No painel Atribuir mensagem, preencha os campos obrigatórios nas secções Nome e Nome a apresentar com os seguintes valores:
        
- Nome: introduza um nome da política. Por exemplo, 
AssignMessage. - Nome a apresentar: introduza o nome da política para utilização na IU. Por exemplo, 
Assign Message. 
 - Nome: introduza um nome da política. Por exemplo, 
 - Clique em Criar.
 -  O elemento 
<APIKey>no código XML abaixo especifica a localização da chave da API no pedido recebido. Por predefinição, a política obtém a chave de um parâmetro de consulta denominadoapikeyno pedido HTTP.<APIKey ref="request.queryparam.apikey" />
O nome
apikeyé arbitrário e pode ser qualquer propriedade que contenha a chave da API. - Atualize os conteúdos da política de Atribuir mensagem para o seguinte:
 - Adicione as políticas 
VerifyApiKeyeRemove Query Param apikey.- No menu Pontos finais de proxy, clique em Preflow.
 - No painel Pedido do editor visual, clique em Adicionar etapa de política.
 - No painel Passo Adicionar política, selecione Validar chave da API.
 - Clique em Adicionar.
 - No painel Pedido do editor visual, clique em Adicionar etapa de política.
 - No painel Adicionar passo de política, selecione Remover apikey de parâmetro de consulta.
 - Clique em Adicionar.
 
 - Clique em Guardar.
 - Implemente o seu proxy num ambiente:
  
- Clique em Implementar.
 - Selecione uma Revisão e um Ambiente.
 - Clique em Implementar.
 
 - Teste as alterações chamando a API conforme descrito em Tente chamar a API.
 
<AssignMessage async="false" continueOnError="false" enabled="true" name="remove-query-param-apikey"> <DisplayName>Remove Query Param apikey</DisplayName> <Remove> <QueryParams> <QueryParam name="apikey"/> </QueryParams> </Remove> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
IU clássica
- No editor de proxy de API, clique no separador Desenvolver. Vai ver que foram adicionadas duas políticas ao fluxo de pedidos do proxy de API:
          
- Validar chave da API: verifica a chamada API para garantir que está presente uma chave da API válida (enviada como um parâmetro de consulta).
 - Remover parâmetro de consulta apikey: uma política de atribuição de mensagens que remove a chave da API depois de ser verificada, para que não seja transmitida e exposta desnecessariamente.
 
 - 
          
Clique no ícone da política de verificação da chave da API na vista de fluxo e consulte a configuração XML da política na vista de código inferior. O elemento
<APIKey>indica à política onde deve procurar a chave da API quando a chamada é feita. Por predefinição, procura a chave como um parâmetro de consulta denominadoapikeyno pedido HTTP:<APIKey ref="request.queryparam.apikey" />
O nome
apikeyé arbitrário e pode ser qualquer propriedade que contenha a chave da API. 
Tente chamar a API
Neste passo, vai fazer uma chamada API bem-sucedida diretamente para o serviço de destino e, em seguida, vai fazer uma chamada sem êxito para o proxy API para ver como está a ser protegido pelas políticas.
- 
          
Êxito
Num navegador de Internet, aceda ao seguinte endereço. Este é o serviço de destino para o qual o proxy da API está configurado para encaminhar o pedido, mas vai aceder diretamente a ele por agora:
http://mocktarget.apigee.net
Deve receber esta resposta com êxito:
Hello, Guest! - 
          
Falha
Agora, experimente chamar o proxy da API:
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey
onde
YOUR ENV_GROUP_HOSTNAMEé o nome do anfitrião do grupo de ambientes. Consulte Encontre o nome de anfitrião do grupo de ambientes.Sem a política da chave da API Verify, esta chamada daria a mesma resposta que a chamada anterior. No entanto, neste caso, deve receber a seguinte resposta de erro:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
o que significa, corretamente, que não transmitiu uma chave da API válida (como um parâmetro de consulta).
 
Nos passos seguintes, vai receber a chave da API necessária.
Adicionar um produto de API
Apigee na Cloud Console
Para adicionar um produto de API através da IU do Apigee:
Na Google Cloud consola, aceda à página Distribuição > Produtos API:
- Clique em +Criar.
 - Introduza os detalhes do produto para o seu produto de API.
Campo Descrição Nome Nome interno do produto API. Não especifique carateres especiais no nome. 
Nota: não pode editar o nome depois de criar o produto da API.Nome a apresentar Nome a apresentar do produto API. O nome a apresentar é usado na IU e pode editá-lo em qualquer altura. Se não for especificado, é usado o valor Name. Este campo é preenchido automaticamente com o valor Nome. Pode editar ou eliminar o respetivo conteúdo. O nome a apresentar pode incluir carateres especiais. Descrição Descrição do produto API. Ambiente Ambientes aos quais o produto API vai permitir o acesso. Por exemplo, testouprod.Acesso Selecione Público. Aprovar automaticamente pedidos de acesso Ativar a aprovação automática de pedidos de chaves para este produto de API a partir de qualquer app. Quota Ignore para este tutorial. Âmbitos do OAuth permitidos Ignore para este tutorial.  - Na secção Operações, clique em Adicionar uma operação.
 - No campo Proxy de API, selecione o proxy de API que acabou de criar.
 - No campo Caminho, introduza "/". Ignore os outros campos.
 - Clique em Guardar para guardar a operação.
 - Clique em Guardar para guardar o produto API.
 
Para mais informações sobre como adicionar um produto API, consulte o artigo Crie um produto API.
IU clássica
Para adicionar um produto de API através da IU do Apigee:
- Selecione Publicar > Produtos API.
 - Clique em +Criar.
 - Introduza os detalhes do produto da API.
Campo Descrição Nome Nome interno do produto API. Não especifique carateres especiais no nome. 
Nota: não pode editar o nome depois de criar o produto API.Nome a apresentar Nome a apresentar do produto API. O nome a apresentar é usado na IU e pode editá-lo em qualquer altura. Se não for especificado, é usado o valor do nome. Este campo é preenchido automaticamente com o valor do nome. Pode editar ou eliminar o respetivo conteúdo. O nome a apresentar pode incluir carateres especiais. Descrição Descrição do produto API. Ambiente Ambientes aos quais o produto API vai permitir o acesso. Por exemplo, testouprod.Acesso Selecione Público. Aprovar automaticamente pedidos de acesso Ativar a aprovação automática de pedidos de chaves para este produto de API a partir de qualquer app. Quota Ignore para este tutorial. Âmbitos do OAuth permitidos Ignore para este tutorial.  - Na secção Operações, clique em ADICIONAR UMA OPERAÇÃO.
 - No campo Proxy de API, selecione o proxy de API que acabou de criar.
 - No campo Caminho, introduza "/". Ignore os outros campos.
 - Clique em Guardar para guardar a operação.
 - Clique em Guardar para guardar o produto API.
 
Adicione um programador e uma app à sua organização
Em seguida, vamos simular o fluxo de trabalho de um programador que se inscreve para usar as suas APIs. Um programador tem uma ou mais apps que chamam as suas APIs, e cada app recebe uma chave da API única. Isto dá-lhe, ao fornecedor de APIs, um controlo mais detalhado sobre o acesso às suas APIs e relatórios mais detalhados sobre o tráfego de APIs por app.
Crie um programador
Apigee na Cloud Console
Para criar um programador:
- 
        
Na Google Cloud consola, aceda à página Distribuição > Programadores:
 - Clique em + Criar.
 - Introduza o seguinte na janela Adicionar programador:
Campo Valor Nome próprio KeyserApelido SozeEmail keyser@example.comNome de utilizador keyser - Clique em Adicionar.
 
Para mais informações sobre como criar um programador, consulte o artigo Registar programadores de apps.
IU clássica
Para criar um programador:
- Selecione Publicar > Programadores no menu.
Nota: se ainda estiver no ecrã Desenvolver, clique em "<" junto a DESENVOLVER para apresentar o menu e selecione Publicar > Programadores - Clique em + Programador.
 - Introduza o seguinte na janela Novo programador:
Neste campo enter Nome próprio KeyserApelido SozeNome de utilizador keyserEmail keyser@example.com - Clique em Criar.
 
Registe uma app
Apigee na Cloud Console
- 
        
Na Google Cloud consola, aceda à página Distribuição > Apps:
 - Clique em + Criar.
 - Introduza o seguinte na janela Criar app:
Campo Valor Nome da app Introduza: keyser_appNome a apresentar Introduza: keyser_appProgramador Selecionar: Keyser Soze (keyser@example.com)URL de retorno de chamada Deixe em branco Notes Deixe em branco  - Na secção Credenciais, clique em Adicionar credencial.
 - Selecione Nunca. As credenciais desta app nunca expiram.
 - Clique em Adicionar produtos.
 - Selecione o produto que acabou de criar.
 - Clique em Adicionar.
 - Clique em Criar.
 
Para mais informações sobre o registo de uma app, consulte o artigo Registar uma app.
IU clássica
Para registar uma app de programador:
- Selecione Publicar > Apps.
 - Clique em + App.
 - Introduza o seguinte na janela Nova app de programador:
Campo Valor Nome e Nome a apresentar Introduza: keyser_appProgramador Selecionar: Keyser Soze (keyser@example.com)URL de retorno e Notas Deixe em branco  - Na secção Credenciais, selecione Nunca. As credenciais desta app nunca expiram.
 - Clique em Adicionar produto.
 - Selecione o produto que acabou de criar.
 - Clique em Criar.
 
Obtenha a chave da API
Apigee na Cloud Console
Para obter a chave da API:
Na Google Cloud consola, aceda à página Distribuição > Apps.
- Selecione a app necessária na lista de apps.
 - Na página Ver app, em Credenciais, clique em junto ao campo Chave. Repare que a chave está associada ao produto que criou.
 - Clique em Copiar. Vai usar esta chave no passo seguinte.
 
IU clássica
Para obter a chave da API:
- Na página Apps (Publicar > Apps), clique em keyser_app.
 - Na página keyser_app, clique em Mostrar junto a Chave na secção
        Credenciais. Repare que a chave está associada ao produto que criou. 
 - Selecione e copie a chave. Vai usá-lo no passo seguinte.
 
Chame a API com uma chave
Agora que tem uma chave da API, pode usá-la para chamar o proxy da API. Cole a chave da API conforme mostrado, como um parâmetro de consulta. Certifique-se de que não existem espaços adicionais no parâmetro de consulta.
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey?apikey=YOUR_API_KEY
Agora, quando chamar o proxy da API, deve receber esta resposta: Hello,
      Guest!
Parabéns! Criou um proxy de API e protegeu-o exigindo que uma chave da API válida seja incluída na chamada.
Tenha em atenção que, em geral, não é uma boa prática transmitir uma chave da API como um parâmetro de consulta. Em alternativa, deve considerar transmiti-lo no cabeçalho HTTP.
Prática recomendada: transmitir a chave no cabeçalho HTTP
Neste passo, vai modificar o proxy para procurar a chave API num cabeçalho denominado x-apikey.
Apigee na Cloud Console
- Na Google Cloud consola, aceda à página Desenvolvimento de proxy > Proxies de API.
 - Selecione o proxy necessário na lista de proxies.
 - Na página Detalhes do proxy, clique em Desenvolver.
 - Modifique o XML da política para indicar à política que procure no cabeçalho e não no parâmetro de consulta:
 - Clique em Guardar para guardar as alterações.
 - Clique em Implementar.
 - Selecione uma Revisão e um Ambiente.
 - Clique em Implementar.
 - 
      
Faça a seguinte chamada da API com o cURL para transmitir a chave da API como um cabeçalho denominado
x-apikey. Não se esqueça de substituir o nome da sua organização.curl -v -H "x-apikey: YOUR_API_KEY" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey
 
<APIKey ref="request.header.x-apikey"/>
Tenha em atenção que, para concluir totalmente a alteração, também tem de configurar a política Assign Message para remover o cabeçalho em vez do parâmetro de consulta. Por exemplo:
<Remove>
  <Headers>
      <Header name="x-apikey"/>
  </Headers>
</Remove>
IU clássica
- Edite o proxy da API. Selecione Desenvolver > Proxies de API > helloworld_apikey e aceda à vista Desenvolver.
 - 
          
Selecione a política Verificar chave da API e modifique o XML da política para indicar à política que procure no
headerem vez de noqueryparam:<APIKey ref="request.header.x-apikey"/>
 - Guarde o proxy da API e use Implementar para o implementar.
 - 
          
Faça a seguinte chamada da API usando cURL para transmitir a chave da API como um cabeçalho denominado
x-apikey. Não se esqueça de substituir o nome da sua organização.curl -v -H "x-apikey: {api_key_goes_here}" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey 
Tenha em atenção que, para concluir totalmente a alteração, também tem de configurar a política Assign Message para remover o cabeçalho em vez do parâmetro de consulta. Por exemplo:
<Remove>
  <Headers>
      <Header name="x-apikey"/>
  </Headers>
</Remove>
Tópicos relacionados
Seguem-se alguns tópicos relacionados com produtos e chaves de API:
- Gerir produtos de API
 - Chaves de API
 - Registar programadores de apps
 - Registe apps e faça a gestão das chaves da API
 - Política de validação da chave de API
 
A proteção de APIs envolve frequentemente segurança adicional, como o OAuth, um protocolo aberto que troca credenciais (como o nome de utilizador e a palavra-passe) por tokens de acesso. Os tokens de acesso são strings longas e aleatórias que podem ser transmitidas através de um pipeline de mensagens, incluindo de app para app, sem comprometer as credenciais originais.
Para uma vista geral dos tópicos relacionados com a segurança, consulte o artigo Proteger um proxy.