Partager via


Erreurs non autorisées (401) lors de l’appel d’API

En se référant à l’article sur la série de résolution des problèmes Azure Gestion des API, il s’agit du troisième scénario du labo. Vérifiez que vous avez suivi les instructions de configuration du labo pour recréer le problème.

Version du produit d’origine : Gestion des API Service
Numéro de la base de connaissances d’origine : 4464930

Remarque

Cet article vous a-t-il été utile ? Votre avis est important à nos yeux. Utilisez le bouton Commentaires sur cette page pour nous faire savoir dans quelle mesure cet article vous a été utile ou comment nous pouvons l’améliorer.

Symptômes

L’API Echo a soudainement commencé à lever divers types d’erreurs HTTP 401 - Non autorisés lors de l’appel des opérations qu’elle contient. Les opérations Créer une ressource et Récupérer des ressources affichent ce message d’erreur :

{
« statusCode » : 401,
« message » : « Accès refusé en raison d’une clé d’abonnement non valide. Veillez à fournir une clé valide pour un abonnement actif. »
}

Alors que le reste des opérations s’affiche

{
« statusCode » : 401,
« message » : « Accès refusé en raison d’une clé d’abonnement manquante. Veillez à inclure la clé d’abonnement lorsque vous effectuez des demandes à une API. »
}

Le code de réponse HTTP attendu pour toutes les opérations est 200, mais le corps de la réponse varie car l’API back-end renvoie toujours ce que vous envoyez en tant que corps de requête en plus des en-têtes.

Étapes de résolution des problèmes

  • Pour accéder à l’API, les développeurs doivent d’abord s’abonner à un produit. Lorsqu’ils s’abonnent, ils obtiennent une clé d’abonnement qui est envoyée dans le cadre d’un en-tête de requête qui convient à n’importe quelle API de ce produit. Ocp-Apim-Subscription-Key est l’en-tête de requête envoyé pour la clé d’abonnement du produit associé à cette API. La clé est renseignée automatiquement.

  • En ce qui concerne l’erreur Accès refusé en raison d’une clé d’abonnement non valide. Veillez à fournir une clé valide pour un abonnement actif. Il est clair que vous envoyez une valeur incorrecte de l’en-tête de requête Ocp-Apim-Subscription-Key lors de l’appel des opérations Créer une ressource et Récupérer des ressources .

  • Vous pouvez case activée votre clé d’abonnement pour un produit particulier à partir du portail des développeurs APIM en accédant à la page Profil après la connexion, comme indiqué ci-dessous.

  • Sélectionnez le bouton Afficher pour afficher les clés d’abonnement pour les produits auxquels vous vous êtes abonné.

    Capture d’écran des clés d’abonnement pour les produits respectifs.

  • Si vous case activée les en-têtes envoyés à partir de l’onglet Test, vous remarquez que la valeur de l’en-tête de requête Ocp-Apim-Subscription-Key est incorrecte. Vous vous demandez peut-être comment cela est possible, car APIM remplit automatiquement cet en-tête de requête avec la clé d’abonnement appropriée.

  • Nous allons case activée la définition frontale des opérations Créer une ressource et Récupérer des ressources sous l’onglet Création. Après une inspection minutieuse, vous remarquerez que ces opérations ont obtenu une valeur codée en dur incorrecte de l’en-tête de requête Ocp-Apim-Subscription-Key ajouté sous l’onglet En-têtes.

  • Vous pouvez le supprimer. Cela devrait résoudre le problème de clé d’abonnement non valide, mais vous obtenez quand même l’erreur de clé d’abonnement manquante.

    Le message d’erreur suivant peut s’afficher :

    HTTP/1.1 401 Non autorisé

    Longueur du contenu : 152
    Content-Type : application/json
    Date : Dim, 29 juil 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 » : « Accès refusé en raison d’une clé d’abonnement manquante. Veillez à inclure la clé d’abonnement lors de l’envoi de demandes à une API. » }

  • Accédez à l’API Echo et case activée si elle est associée à l’un des produits disponibles. Si ce n’est pas le cas, vous devez associer cette API à un produit afin d’obtenir une clé d’abonnement.

    Les développeurs doivent d’abord s’abonner à un produit pour accéder à l’API. Lorsqu’ils s’abonnent, ils obtiennent une clé d’abonnement qui convient à n’importe quelle API de ce produit. Si vous avez créé le instance APIM, vous êtes déjà administrateur et vous êtes donc abonné à chaque produit par défaut.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.