Réponse HTTP 304 dans la session de trace

Vous consultez la documentation Apigee Edge.
Accédez à la documentation**Apigee X**.
info

Problème constaté

Dans Edge pour le cloud privé, lorsque vous tracez une API dans l'interface utilisateur Edge, vous voyez une réponse HTTP 304 dans la colonne État de la fenêtre de trace :

Messages d'erreur

Aucun message d'erreur ne s'affiche. L'appel de proxy d'API renvoie en fait une réponse de réussite, telle qu'une réponse HTTP 200. Toutefois, la fenêtre de trace de l'interface utilisateur Edge affiche une réponse HTTP 304 et aucune donnée de trace n'est collectée.

Causes possibles

Dans Edge pour le cloud privé, l'interface utilisateur Edge tente de tracer un proxy d'API auquel accède une adresse IP privée.

L'outil de trace de l'interface utilisateur Edge peut envoyer des requêtes d'API à n'importe quelle URL. Dans un scénario de déploiement où l'interface utilisateur Edge est co-hébergée avec d'autres services internes, un utilisateur malveillant peut utiliser l'outil de trace de manière abusive pour envoyer des requêtes à des services via une adresse IP privée, telle que localhost ou 127.0.0.1.

Dans un environnement de production, vous laissez généralement la valeur par défaut telle quelle pour empêcher les utilisateurs de tracer une adresse IP privée. Par exemple, c'est ainsi que la version publique de l'interface utilisateur Edge est déployée.

Toutefois, pour un environnement de développement ou de test interne, vous pouvez remplacer cette valeur par défaut pour permettre à vos développeurs d'API de tracer n'importe quelle adresse IP. En règle générale, un environnement de développement/test se trouve derrière un pare-feu qui n'autorise pas l'accès public.

Remarque : Nous vous recommandons de laisser la valeur par défaut telle quelle pour empêcher l'accès aux adresses IP privées, même dans un environnement de développement/test, sauf si vous devez l'activer.

Cause : Tentative d'accès à un proxy d'API via une adresse IP privée

Par défaut, l'interface utilisateur Edge pour Edge pour le cloud privé empêche les utilisateurs de tracer les appels d'API effectués via des adresses IP privées. La liste des adresses IP privées inclut les éléments suivants :

  • Adresse de bouclage (127.0.0.1 ou localhost)
  • Adresses locales au site (pour IPv4 : 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Toute adresse locale (toute adresse qui se résout en localhost)

Par exemple, la commande curl suivante appelle un proxy d'API à l'aide d'une adresse IP 127.0.0.1, qui est considérée comme une adresse IP privée :

curl http://127.0.0.1:9001/myapiproxy

Dans la fenêtre de trace de cet appel, vous voyez une réponse HTTP 304, même si la commande curl a renvoyé une réponse de réussite.

Solution

Pour permettre à l'interface utilisateur Edge de tracer les adresses IP privées pour Edge pour le cloud privé, définissez le jeton suivant dans ui.properties :

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

Pour définir cette propriété :

  1. Ouvrez le fichier ui.properties dans un éditeur. Si le fichier ne existe pas, créez-le.
    vi /opt/apigee/customer/application/ui.properties
  2. Définissez les propriétés suivantes sur "true" :
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. Enregistrez les modifications apportées à ui.properties.
  4. Assurez-vous que le fichier de propriétés appartient à l'utilisateur "apigee" :
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Redémarrez l'interface utilisateur Edge :
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

L'interface utilisateur Edge peut désormais accéder aux adresses IP privées dans l'outil de trace.

Pour désactiver ultérieurement le traçage des requêtes via des adresses IP privées par l'interface utilisateur, modifiez ui.properties pour définir la propriété sur false, puis redémarrez l'interface utilisateur Edge.

Pour en savoir plus, consultez Autoriser l'accès de l'interface utilisateur Edge aux adresses IP locales.