Compartilhar via


Erros não autorizados (401) ao invocar APIs

Referindo-se ao artigo sobre o Azure Gerenciamento de API Série de Solução de Problemas, este é o terceiro cenário do laboratório. Verifique se você seguiu as instruções de instalação do laboratório de acordo com isso, para recriar o problema.

Versão original do produto: Gerenciamento de API Service
Número de KB original: 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

De repente, a API echo começou a gerar diversos tipos de HTTP 401 – erros não autorizados ao invocar as operações sob ela. Criar recursos e recuperar operações de recurso estão mostrando esta mensagem de erro:

{
"statusCode": 401,
"message": "Acesso negado devido à chave de assinatura inválida. Certifique-se de fornecer uma chave válida para uma assinatura ativa.".
}

Enquanto o restante das operações estão sendo exibidas

{
"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.".
}

O código de resposta HTTP esperado para todas as operações é 200, no entanto, o corpo da resposta variará, pois a API de back-end sempre ecoa o que você enviar como um corpo de solicitação, além de cabeçalhos.

Etapas para a solução de problemas

  • Para obter acesso à API, os desenvolvedores devem primeiro assinar um produto. Quando eles assinam, eles recebem uma chave de assinatura que é enviada como parte do cabeçalho de 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 , o Access foi negado devido à chave de assinatura inválida. Certifique-se de fornecer uma chave válida para uma assinatura ativa, é claro que você está enviando um valor errado do cabeçalho de solicitação Ocp-Apim-Subscription-Key enquanto invoca operações de recurso Criar e Recuperar recursos .

  • Você pode marcar sua chave de assinatura para um determinado produto do portal do desenvolvedor do APIM navegando até a página Perfil após a entrada, conforme mostrado abaixo.

  • Selecione o botão Mostrar para ver as chaves de assinatura dos respectivos produtos aos quais você se inscreveu.

    Captura de tela das chaves de assinatura dos respectivos produtos.

  • Se você marcar os cabeçalhos que estão sendo enviados da guia Teste, observe que o valor do cabeçalho de solicitação Ocp-Apim-Subscription-Key está errado. Você pode estar se perguntando como isso é possível, pois o APIM preenche automaticamente esse cabeçalho de solicitação com a chave de assinatura certa.

  • Vamos marcar a definição front-end de Criar recursos e recuperar operações de recurso na guia Design. Após uma inspeção cuidadosa, você notaria que essas operações receberam um valor codificado errado do cabeçalho de solicitação Ocp-Apim-Subscription-Key adicionado na guia Cabeçalhos.

  • Você pode removê-lo, isso deve resolve o problema inválido da chave de assinatura, mas ainda assim você obteria 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 de julho de 2018 14:29:50 GMT
    Vary: Origin 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 em uma API." }

  • Acesse as APIsettings do Echo e marcar se ela estiver associada a qualquer um dos produtos disponíveis. Caso contrário, você deve associar essa API a um produto para obter uma chave de assinatura.

    Os desenvolvedores devem primeiro assinar um produto para obter acesso à API. Quando eles assinam, eles recebem uma chave de assinatura que é boa para qualquer API nesse produto. Se você criou a instância APIM, você já é um administrador, portanto, você está inscrito em todos os produtos por padrão.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.