Esta página se aplica ao Apigee e ao Apigee híbrido .
Veja a documentação do Apigee Edge .
Vídeo: confira este breve vídeo para uma introdução sobre como proteger sua API.
O que você aprenderá
Este tutorial explica como:
- Crie um proxy de API que exija uma chave de API.
- Crie um produto de API, um desenvolvedor e um aplicativo de desenvolvedor.
- Chame sua API com uma chave de API.
É importante proteger sua API contra acesso não autorizado. Uma maneira de fazer isso é com chaves de API.
Quando um aplicativo faz uma solicitação a um proxy de API configurado para verificar uma chave de API, o aplicativo deve fornecer uma chave válida. Em tempo de execução, a política "Verificar Chave de API" verifica se a chave de API fornecida:
- É válido
- Não foi revogado
- Corresponde à chave de API do produto de API que expõe os recursos solicitados
Se a chave for válida, a solicitação será permitida. Se a chave for inválida, a solicitação resultará em uma falha de autorização.
Crie o proxy da API
- Acesse a interface do usuário da Apigee e faça login.
- Selecione sua organização usando o menu suspenso no canto superior esquerdo da interface do usuário.
Clique em Desenvolver > Proxies de API para exibir a lista de proxies de API.
- Clique em Criar novo .
- No assistente Criar um proxy, selecione Proxy reverso (mais comum) .
- Configure o proxy da seguinte maneira:
Neste campo faça isso Nome do proxy Digite: helloworld_apikey
Caminho Base do Projeto Alterar para:
/helloapikey
O Caminho Base do Projeto faz parte da URL usada para fazer solicitações ao proxy da API.
Descrição Digite: hello world protected by API key
Alvo (API existente) Digite:
http://mocktarget.apigee.net
Isso define a URL de destino que a Apigee invoca em uma solicitação ao proxy da API. Esse destino retorna apenas uma resposta simples:
Hello, Guest!
- Clique em Avançar .
- Na página Políticas comuns , selecione Chave de 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 de API.
- Clique em Avançar .
- Na página Resumo, certifique-se de que um ambiente de implantação esteja selecionado e clique em Criar e implantar .
- Clique em Editar proxy para exibir a página Visão geral do proxy da API.
Ver as políticas
- No editor de proxy da API, clique na aba Desenvolver . Você verá que duas políticas foram adicionadas ao fluxo de solicitação do proxy da API:
- Verificar chave de API – Verifica a chamada de API para garantir que uma chave de API válida esteja presente (enviada como um parâmetro de consulta).
- Remover parâmetro de consulta apikey – Uma política de atribuição de mensagem que remove a chave de API depois que ela é verificada, para que ela não seja repassada e exposta desnecessariamente.
Clique no ícone da política Verificar Chave de API na visualização de fluxo e observe a configuração XML da política na visualização de código inferior. O elemento
<APIKey>
informa à política onde ela deve procurar a chave de API quando a chamada é feita. Por padrão, ela procura a chave como um parâmetro de consulta chamadoapikey
na solicitação HTTP:<APIKey ref="request.queryparam.apikey" />
O nome
apikey
é arbitrário e pode ser qualquer propriedade que contenha a chave de API.
Tente chamar a API
Nesta etapa, você fará uma chamada de API bem-sucedida diretamente para o serviço de destino e, em seguida, fará uma chamada malsucedida para o proxy de API para ver como ele está sendo protegido pelas políticas.
Sucesso
Em um navegador da web, acesse o seguinte endereço. Este é o serviço de destino para o qual o proxy da API está configurado para encaminhar a solicitação, mas você o acessará diretamente por enquanto:
http://mocktarget.apigee.net
Você deve receber esta resposta bem-sucedida:
Hello, Guest!
Falha
Agora tente chamar seu proxy de API:
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey
onde
YOUR ENV_GROUP_HOSTNAME
é o nome do host do grupo de ambiente. Consulte Encontrar o nome do host do grupo de ambiente .Sem a política Verificar Chave de API, esta chamada forneceria a mesma resposta da chamada anterior. Mas, neste caso, você deverá 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 você não passou uma chave de API válida (como um parâmetro de consulta).
Nas próximas etapas, você obterá a chave de API necessária.
Adicionando um produto de API
Para adicionar um produto de API usando a interface do usuário do Apigee:
- Selecione Publicar > Produtos de API .
- Clique em +Criar .
- Insira os detalhes do produto para sua API.
Campo Descrição Nome Nome interno do produto da API. Não especifique caracteres especiais no nome.
Observação: você não pode editar o nome depois que o produto da API for criado.Nome de exibição Nome de exibição do produto da API. O nome de exibição é usado na interface do usuário e você pode editá-lo a qualquer momento. Se não for especificado, o valor "Nome" será usado. Este campo é preenchido automaticamente com o valor "Nome"; você pode editar ou excluir seu conteúdo. O nome de exibição pode incluir caracteres especiais. Descrição Descrição do produto API. Ambiente Ambientes aos quais o produto da API permitirá acesso. Por exemplo, test
ouprod
.Acesso Selecione Público . Aprovar automaticamente solicitações de acesso Habilite a aprovação automática de solicitações de chaves para este produto de API de qualquer aplicativo. Contingente Ignore neste tutorial. Escopos OAuth permitidos Ignore neste tutorial. - Na seção Operações , clique em ADICIONAR UMA OPERAÇÃO .
- No campo Proxy de API, selecione o proxy de API que você acabou de criar.
- No campo Caminho, digite "/". Ignore os outros campos.
- Clique em Salvar para salvar a operação.
- Clique em Salvar para salvar o produto da API.
Adicione um desenvolvedor e um aplicativo à sua organização
A seguir, simularemos o fluxo de trabalho de um desenvolvedor se cadastrando para usar suas APIs. Um desenvolvedor terá um ou mais aplicativos que chamam suas APIs, e cada aplicativo recebe uma chave de API exclusiva. Isso dá a você, o provedor da API, um controle mais granular sobre o acesso às suas APIs e relatórios mais granulares sobre o tráfego de API por aplicativo.
Criar um desenvolvedor
Para criar um desenvolvedor:
- Selecione Publicar > Desenvolvedores no menu.
Nota : Se você ainda estiver na tela Desenvolver, clique em "<" em DESENVOLVER para exibir o menu e selecione Publicar > Desenvolvedores - Clique em + Desenvolvedor .
- Digite o seguinte na janela Novo desenvolvedor:
Neste campo digitar Primeiro nome Keyser
Sobrenome Soze
Nome de usuário keyser
E-mail [email protected]
- Clique em Criar .
Registrar um aplicativo
Para registrar um aplicativo de desenvolvedor:
- Selecione Publicar > Aplicativos .
- Clique em + Aplicativo .
- Digite o seguinte na janela Novo aplicativo para desenvolvedor:
Neste campo faça isso Nome e nome de exibição Digite: keyser_app
Desenvolvedor Selecione: Keyser Soze ([email protected])
URL de retorno de chamada e notas Deixe em branco - Na seção Credenciais, selecione Nunca . As credenciais deste aplicativo nunca expirarão.
- Clique em Adicionar produto .
- Selecione o produto que você acabou de criar.
- Clique em Criar .
Obtenha a chave da API
Para obter a chave de API:
- Na página Aplicativos (Publicar > Aplicativos), clique em keyser_app .
- Na página keyser_app , clique em Mostrar ao lado de Chave na seção Credenciais . Observe que a chave está associada ao produto que você criou.
- Selecione e copie a chave. Você a usará na próxima etapa.
Chame a API com uma chave
Agora que você tem uma chave de API, pode usá-la para chamar o proxy da API. Cole a chave de API como mostrado, como um parâmetro de consulta. Certifique-se de que não haja espaços extras no parâmetro de consulta.
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey?apikey=your_api_key
Agora, quando você chamar o proxy da API, deverá receber esta resposta: Hello, Guest!
Parabéns! Você criou um proxy de API e o protegeu exigindo que uma chave de API válida fosse incluída na chamada.
Observe que, em geral, não é uma boa prática passar uma chave de API como parâmetro de consulta. Você deve considerar passá-la no cabeçalho HTTP .
Melhor prática: Passando a chave no cabeçalho HTTP
Nesta etapa, você modificará o proxy para procurar a chave de API em um cabeçalho chamado x-apikey
.
- Edite o proxy da API. Selecione Desenvolver > Proxies de API > helloworld_apikey e acesse a visualização Desenvolver .
Selecione a política Verificar chave de API e modifique o XML da política para informar à política para procurar no
header
em vez de noqueryparam
:<APIKey ref="request.header.x-apikey"/>
- Salve o proxy da API e use Deploy para implantá-lo.
Faça a seguinte chamada de API usando cURL para passar a chave de API como um cabeçalho chamado
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
Observe que, para concluir a alteração, você também precisa configurar a política de Atribuição de Mensagem 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
Aqui estão alguns tópicos relacionados a produtos e chaves de API:
- Gerenciando produtos de API
- Chaves de API
- Registrando desenvolvedores de aplicativos
- Registre aplicativos e gerencie chaves de API
- Verificar política de chave de API
A proteção de APIs geralmente envolve segurança adicional, como OAuth , um protocolo aberto que troca credenciais (como nome de usuário e senha) por tokens de acesso. Tokens de acesso são sequências longas e aleatórias que podem ser passadas por um pipeline de mensagens, inclusive de aplicativo para aplicativo, sem comprometer as credenciais originais.
Para uma visão geral de tópicos relacionados à segurança, consulte Protegendo um proxy .
Esta página se aplica ao Apigee e ao Apigee híbrido .
Veja a documentação do Apigee Edge .
Vídeo: confira este breve vídeo para uma introdução sobre como proteger sua API.
O que você aprenderá
Este tutorial explica como:
- Crie um proxy de API que exija uma chave de API.
- Crie um produto de API, um desenvolvedor e um aplicativo de desenvolvedor.
- Chame sua API com uma chave de API.
É importante proteger sua API contra acesso não autorizado. Uma maneira de fazer isso é com chaves de API.
Quando um aplicativo faz uma solicitação a um proxy de API configurado para verificar uma chave de API, o aplicativo deve fornecer uma chave válida. Em tempo de execução, a política "Verificar Chave de API" verifica se a chave de API fornecida:
- É válido
- Não foi revogado
- Corresponde à chave de API do produto de API que expõe os recursos solicitados
Se a chave for válida, a solicitação será permitida. Se a chave for inválida, a solicitação resultará em uma falha de autorização.
Crie o proxy da API
- Acesse a interface do usuário da Apigee e faça login.
- Selecione sua organização usando o menu suspenso no canto superior esquerdo da interface do usuário.
Clique em Desenvolver > Proxies de API para exibir a lista de proxies de API.
- Clique em Criar novo .
- No assistente Criar um proxy, selecione Proxy reverso (mais comum) .
- Configure o proxy da seguinte maneira:
Neste campo faça isso Nome do proxy Digite: helloworld_apikey
Caminho Base do Projeto Alterar para:
/helloapikey
O Caminho Base do Projeto faz parte da URL usada para fazer solicitações ao proxy da API.
Descrição Digite: hello world protected by API key
Alvo (API existente) Digite:
http://mocktarget.apigee.net
Isso define a URL de destino que a Apigee invoca em uma solicitação ao proxy da API. Esse destino retorna apenas uma resposta simples:
Hello, Guest!
- Clique em Avançar .
- Na página Políticas comuns , selecione Chave de 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 de API.
- Clique em Avançar .
- Na página Resumo, certifique-se de que um ambiente de implantação esteja selecionado e clique em Criar e implantar .
- Clique em Editar proxy para exibir a página Visão geral do proxy da API.
Ver as políticas
- No editor de proxy da API, clique na aba Desenvolver . Você verá que duas políticas foram adicionadas ao fluxo de solicitação do proxy da API:
- Verificar chave de API – Verifica a chamada de API para garantir que uma chave de API válida esteja presente (enviada como um parâmetro de consulta).
- Remover parâmetro de consulta apikey – Uma política de atribuição de mensagem que remove a chave de API depois que ela é verificada, para que ela não seja repassada e exposta desnecessariamente.
Clique no ícone da política Verificar Chave de API na visualização de fluxo e observe a configuração XML da política na visualização de código inferior. O elemento
<APIKey>
informa à política onde ela deve procurar a chave de API quando a chamada é feita. Por padrão, ela procura a chave como um parâmetro de consulta chamadoapikey
na solicitação HTTP:<APIKey ref="request.queryparam.apikey" />
O nome
apikey
é arbitrário e pode ser qualquer propriedade que contenha a chave de API.
Tente chamar a API
Nesta etapa, você fará uma chamada de API bem-sucedida diretamente para o serviço de destino e, em seguida, fará uma chamada malsucedida para o proxy de API para ver como ele está sendo protegido pelas políticas.
Sucesso
Em um navegador da web, acesse o seguinte endereço. Este é o serviço de destino para o qual o proxy da API está configurado para encaminhar a solicitação, mas você o acessará diretamente por enquanto:
http://mocktarget.apigee.net
Você deve receber esta resposta bem-sucedida:
Hello, Guest!
Falha
Agora tente chamar seu proxy de API:
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey
onde
YOUR ENV_GROUP_HOSTNAME
é o nome do host do grupo de ambiente. Consulte Encontrar o nome do host do grupo de ambiente .Sem a política Verificar Chave de API, esta chamada forneceria a mesma resposta da chamada anterior. Mas, neste caso, você deverá 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 você não passou uma chave de API válida (como um parâmetro de consulta).
Nas próximas etapas, você obterá a chave de API necessária.
Adicionando um produto de API
Para adicionar um produto de API usando a interface do usuário do Apigee:
- Selecione Publicar > Produtos de API .
- Clique em +Criar .
- Insira os detalhes do produto para sua API.
Campo Descrição Nome Nome interno do produto da API. Não especifique caracteres especiais no nome.
Observação: você não pode editar o nome depois que o produto da API for criado.Nome de exibição Nome de exibição do produto da API. O nome de exibição é usado na interface do usuário e você pode editá-lo a qualquer momento. Se não for especificado, o valor "Nome" será usado. Este campo é preenchido automaticamente com o valor "Nome"; você pode editar ou excluir seu conteúdo. O nome de exibição pode incluir caracteres especiais. Descrição Descrição do produto API. Ambiente Ambientes aos quais o produto da API permitirá acesso. Por exemplo, test
ouprod
.Acesso Selecione Público . Aprovar automaticamente solicitações de acesso Habilite a aprovação automática de solicitações de chaves para este produto de API de qualquer aplicativo. Contingente Ignore neste tutorial. Escopos OAuth permitidos Ignore neste tutorial. - Na seção Operações , clique em ADICIONAR UMA OPERAÇÃO .
- No campo Proxy de API, selecione o proxy de API que você acabou de criar.
- No campo Caminho, digite "/". Ignore os outros campos.
- Clique em Salvar para salvar a operação.
- Clique em Salvar para salvar o produto da API.
Adicione um desenvolvedor e um aplicativo à sua organização
A seguir, simularemos o fluxo de trabalho de um desenvolvedor se cadastrando para usar suas APIs. Um desenvolvedor terá um ou mais aplicativos que chamam suas APIs, e cada aplicativo recebe uma chave de API exclusiva. Isso dá a você, o provedor da API, um controle mais granular sobre o acesso às suas APIs e relatórios mais granulares sobre o tráfego de API por aplicativo.
Criar um desenvolvedor
Para criar um desenvolvedor:
- Selecione Publicar > Desenvolvedores no menu.
Nota : Se você ainda estiver na tela Desenvolver, clique em "<" em DESENVOLVER para exibir o menu e selecione Publicar > Desenvolvedores - Clique em + Desenvolvedor .
- Digite o seguinte na janela Novo desenvolvedor:
Neste campo digitar Primeiro nome Keyser
Sobrenome Soze
Nome de usuário keyser
E-mail [email protected]
- Clique em Criar .
Registrar um aplicativo
Para registrar um aplicativo de desenvolvedor:
- Selecione Publicar > Aplicativos .
- Clique em + Aplicativo .
- Digite o seguinte na janela Novo aplicativo para desenvolvedor:
Neste campo faça isso Nome e nome de exibição Digite: keyser_app
Desenvolvedor Selecione: Keyser Soze ([email protected])
URL de retorno de chamada e notas Deixe em branco - Na seção Credenciais, selecione Nunca . As credenciais deste aplicativo nunca expirarão.
- Clique em Adicionar produto .
- Selecione o produto que você acabou de criar.
- Clique em Criar .
Obtenha a chave da API
Para obter a chave de API:
- Na página Aplicativos (Publicar > Aplicativos), clique em keyser_app .
- Na página keyser_app , clique em Mostrar ao lado de Chave na seção Credenciais . Observe que a chave está associada ao produto que você criou.
- Selecione e copie a chave. Você a usará na próxima etapa.
Chame a API com uma chave
Agora que você tem uma chave de API, pode usá-la para chamar o proxy da API. Cole a chave de API como mostrado, como um parâmetro de consulta. Certifique-se de que não haja espaços extras no parâmetro de consulta.
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey?apikey=your_api_key
Agora, quando você chamar o proxy da API, deverá receber esta resposta: Hello, Guest!
Parabéns! Você criou um proxy de API e o protegeu exigindo que uma chave de API válida fosse incluída na chamada.
Observe que, em geral, não é uma boa prática passar uma chave de API como parâmetro de consulta. Você deve considerar passá-la no cabeçalho HTTP .
Melhor prática: Passando a chave no cabeçalho HTTP
Nesta etapa, você modificará o proxy para procurar a chave de API em um cabeçalho chamado x-apikey
.
- Edite o proxy da API. Selecione Desenvolver > Proxies de API > helloworld_apikey e acesse a visualização Desenvolver .
Selecione a política Verificar chave de API e modifique o XML da política para informar à política para procurar no
header
em vez de noqueryparam
:<APIKey ref="request.header.x-apikey"/>
- Salve o proxy da API e use Deploy para implantá-lo.
Faça a seguinte chamada de API usando cURL para passar a chave de API como um cabeçalho chamado
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
Observe que, para concluir a alteração, você também precisa configurar a política de Atribuição de Mensagem 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
Aqui estão alguns tópicos relacionados a produtos e chaves de API:
- Gerenciando produtos de API
- Chaves de API
- Registrando desenvolvedores de aplicativos
- Registre aplicativos e gerencie chaves de API
- Verificar política de chave de API
A proteção de APIs geralmente envolve segurança adicional, como OAuth , um protocolo aberto que troca credenciais (como nome de usuário e senha) por tokens de acesso. Tokens de acesso são sequências longas e aleatórias que podem ser passadas por um pipeline de mensagens, inclusive de aplicativo para aplicativo, sem comprometer as credenciais originais.
Para uma visão geral de tópicos relacionados à segurança, consulte Protegendo um proxy .