Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Referindo-se ao artigo sobre a série de solução de problemas do Gerenciamento de API do Azure, esse é o terceiro cenário do laboratório. Certifique-se de ter seguido as instruções de configuração do laboratório de acordo com isso, para recriar o problema.
Versão original do produto: Serviço de Gerenciamento de API
Número original do KB: 4464930
Observação
Esse artigo foi útil? Sua opinião é importante para nós. Use o botão Comentários nesta página para nos informar o quão bem este artigo funcionou para você ou como podemos melhorá-lo.
Sintomas
A API Echo de repente começou a lançar diversos tipos de erros HTTP 401 - Não autorizados ao invocar as operações sob ele. As operações Criar recurso e Recuperar recurso estão mostrando esta mensagem de erro:
{
"statusCode": 401,
"message": "Acesso negado devido a chave de assinatura inválida. Certifique-se de fornecer uma chave válida para uma assinatura ativa."
}
Considerando que o resto das operações estão mostrando
{
"statusCode": 401,
"message": "Acesso negado devido à falta de chave de assinatura. Certifique-se de incluir a chave de assinatura ao fazer solicitações a uma API."
}
O código de resposta HTTP esperado para todas as operações é 200, no entanto, o corpo da resposta varia, pois a API de back-end sempre ecoa o que você envia como um corpo de solicitação, além dos cabeçalhos.
Etapas para solucionar problemas
Para obter acesso à API, os desenvolvedores devem, primeiro, inscrever-se em um produto. Quando eles se inscrevem, eles recebem uma chave de assinatura que é enviada como parte do cabeçalho da solicitação que é boa para qualquer API nesse produto. Ocp-Apim-Subscription-Key é o cabeçalho de solicitação enviado para a chave de assinatura do produto associado a essa API. A chave é preenchida automaticamente.
Em relação ao erro Acesso negado devido a chave de assinatura inválida. Certifique-se de fornecer uma chave válida para uma assinatura ativa, fica claro que você está enviando um valor errado do cabeçalho de solicitação Ocp-Apim-Subscription-Keyao invocar as operações Criar recurso e Recuperar recurso.
Você pode verificar sua chave de assinatura para um produto específico no portal do desenvolvedor do APIM navegando até a página Perfil após o login, conforme mostrado abaixo.
Selecione o botão Mostrar para ver as chaves de assinatura dos respectivos produtos que você assinou.
Se você verificar os cabeçalhos que estão sendo enviados da guia Teste, observará que o valor do cabeçalho de solicitação Ocp-Apim-Subscription-Key está errado. Você pode estar se perguntando como isso é possível, porque o APIM preenche automaticamente esse cabeçalho de solicitação com a chave de assinatura correta.
Vamos verificar a definição de front-end das operações Criar recurso e Recuperar recurso na guia Design . Após uma inspeção cuidadosa, você notaria que essas operações obtiveram um valor codificado incorreto do cabeçalho de solicitação Ocp-Apim-Subscription-Key adicionado na guia Cabeçalhos .
Você pode removê-lo, isso deve resolver o problema da chave de assinatura inválida, mas ainda assim você receberá um erro de chave de assinatura ausente.
Você pode receber a seguinte mensagem de erro:
HTTP/1.1 401 Não autorizado
Comprimento do conteúdo: 152
Tipo de conteúdo: application/json
Data: Dom, 29 Jul 2018 14:29:50 GMT
Variar: Origem WWW-Authenticate: AzureApiManagementKey realm="https://pratyay.azure-api.net/echo",name="Ocp-Apim-Subscription-Key",type="header" {
"statusCode": 401,
"message": "Acesso negado devido à falta de chave de assinatura. Certifique-se de incluir a chave de assinatura ao fazer solicitações para uma API." }Vá para as configurações da API Echo e verifique se ele está associado a algum dos produtos disponíveis. Caso contrário, você deverá associar essa API a um produto para obter uma chave de assinatura.
Os Desenvolvedores devem primeiro se inscrever em um produto para obter acesso à API. Com a assinatura, eles obtêm uma chave de assinatura que funciona para qualquer API no produto. Se você criou a instância do APIM, já é um administrador e, portanto, está inscrito em cada produto por padrão.