Réponse HTTP 304 dans la session de trace

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Problème constaté

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

Messages d'erreur

Il n'y a aucun message d'erreur. L'appel de proxy d'API renvoie en fait une réponse positive, par exemple HTTP 200. Cependant, 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 accessible par une adresse IP privée.

L'outil de traçage de l'interface utilisateur Edge peut envoyer une requête API à n'importe quelle URL. Dans un scénario de déploiement où l'interface utilisateur Edge est cohébergée avec d'autres services internes, un utilisateur malveillant peut faire un usage abusif de l'outil de traçage 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 est protégé par 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 de trace 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 suivre les appels d'API effectués via des adresses IP privées. La liste des adresses IP privées comprend les éléments suivants:

  • Adresse de rebouclage (127.0.0.1 ou localhost)
  • Adresses locales du site (pour IPv4 : 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Toute adresse locale (toute adresse renvoyant vers localhost)

Par exemple, la commande curl suivante appelle un proxy d'API à l'aide de l'adresse IP 127.0.0.1, 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, une réponse HTTP 304 s'affiche même si la commande curl a abouti.

Résolution

Pour permettre à l'interface utilisateur Edge de suivre 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 n'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 traçage.

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

Pour en savoir plus, consultez la section Autoriser l'interface utilisateur Edge à accéder aux adresses IP locales.