Réponse HTTP 304 dans la session de trace

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Symptôme

Dans Edge pour le cloud privé, lors du traçage d'une API dans l'interface utilisateur Edge, vous voyez Une réponse HTTP 304 dans la colonne Status (État) de la fenêtre de trace:

Messages d'erreur

Il n'y a pas de messages d'erreur ; l'appel de proxy de l'API renvoie un succès une réponse HTTP 200, par exemple. Cependant, la fenêtre de trace dans 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 accessibles par une adresse IP privée.

L'outil de traçage de l'interface utilisateur Edge a la possibilité d'envoyer une requête API à n'importe quelle URL. Dans un scénario de déploiement dans lequel l'interface utilisateur Edge est cohébergée avec d'autres un utilisateur malveillant peut faire un usage abusif de l'outil de traçage pour adresser des requêtes à services via une adresse IP privée, telle que localhost ou 127.0.0.1.

Dans un environnement de production, vous conservez généralement le paramètre par défaut pour empêcher les utilisateurs de suivre une adresse IP privée. Par exemple, c'est ainsi que la version publique de l'interface utilisateur Edge est déployé.

Toutefois, dans 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 général, un environnement de développement/test est protégé par un pare-feu qui ne pour autoriser l'accès public.

Remarque : Nous vous recommandons de conserver la valeur par défaut pour empêcher l'accès aux traces vers les adresses IP privées, même dans un environnement de développement/test, à moins que vous ne soyez dans une situation où 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 le traçage des appels d'API effectués via des adresses IP privées. La liste des adresses IP privées comprend:

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

Par exemple, la commande curl suivante appelle un proxy d'API en utilisant une adresse IP de 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, une réponse HTTP 304 s'affiche même si la commande curl a renvoyé un résultat positif.

Solution

Pour permettre à l'interface utilisateur Edge de tracer les adresses IP privées pour Edge pour le Private Cloud, 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 fait n'existent pas, créez-les.
    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 à "apigee" utilisateur:
    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'UI de 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, voir Autoriser l'accès de l'interface utilisateur Edge aux adresses IP locales.