Risposta HTTP 304 nella sessione di traccia

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Sintomo

In Edge per il cloud privato, quando tracci un'API nella UI perimetrale, viene visualizzata una risposta HTTP 304 nella colonna Stato della finestra della traccia:

Messaggi di errore

Non vengono visualizzati messaggi di errore: la chiamata proxy API in realtà restituisce una risposta positiva, ad esempio HTTP 200. Tuttavia, la finestra della traccia nell'interfaccia utente Edge mostra una risposta HTTP 304 e non vengono raccolti dati di traccia.

Possibili cause

In Edge per il cloud privato, la UI perimetrale sta tentando di tracciare un proxy API a cui accede un indirizzo IP privato.

Lo strumento di traccia nella UI di Edge è in grado di inviare richieste API a qualsiasi URL. In uno scenario di deployment in cui la UI perimetrale è ospitata insieme ad altri servizi interni, un utente malintenzionato potrebbe utilizzare in modo improprio lo strumento di traccia per effettuare richieste ai servizi tramite un indirizzo IP privato, come localhost o 127.0.0.1.

In un ambiente di produzione, in genere si lascia invariata l'impostazione predefinita per impedire agli utenti di tracciare un indirizzo IP privato. Ad esempio, questo è il modo in cui viene eseguito il deployment della versione pubblica della UI Edge.

Tuttavia, per un ambiente di sviluppo o test interno, puoi eseguire l'override di questa impostazione predefinita per consentire agli sviluppatori di API di tracciare qualsiasi indirizzo IP. In genere, un ambiente di sviluppo/test è protetto da un firewall che non consente l'accesso pubblico.

Nota: come best practice, devi lasciare invariata l'impostazione predefinita per impedire l'accesso in traccia agli indirizzi IP privati, anche in un ambiente di sviluppo/test, a meno che non ti imbatti in una situazione in cui devi abilitarlo.

Causa: tentativo di accesso a un proxy API tramite un indirizzo IP privato

Per impostazione predefinita, la UI perimetrale per Edge per il cloud privato impedisce agli utenti di tracciare le chiamate API effettuate tramite indirizzi IP privati. L'elenco di indirizzi IP privati include:

  • Indirizzo di loopback (127.0.0.1 o localhost)
  • Indirizzi locali del sito (per IPv4 - 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Qualsiasi indirizzo locale (qualsiasi indirizzo con risoluzione localhost)

Ad esempio, il seguente comando curl effettua una chiamata a un proxy API utilizzando un indirizzo IP 127.0.0.1, che è considerato un indirizzo IP privato:

curl http://127.0.0.1:9001/myapiproxy

Nella finestra di traccia di questa chiamata, viene visualizzata una risposta HTTP 304 anche se il comando curl ha restituito un esito positivo.

Risoluzione

Per abilitare l'interfaccia utente Edge per tracciare gli indirizzi IP privati per Edge per il cloud privato, imposta il token seguente in ui.properties:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

Per impostare questa proprietà:

  1. Apri il file ui.properties in un editor. Se il file non esiste, crealo.
    vi /opt/apigee/customer/application/ui.properties
  2. Imposta le seguenti proprietà su true:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. Salva le modifiche apportate a ui.properties.
  4. Assicurati che il file delle proprietà sia di proprietà dell 'utente apigee':
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Riavvia la UI Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Ora la UI perimetrale può accedere agli indirizzi IP privati nello strumento di traccia.

Per disattivare in un secondo momento l'interfaccia utente di tracciare le richieste tramite indirizzi IP privati, modifica ui.properties per impostare la proprietà su false, quindi riavvia l'interfaccia utente Edge.

Per ulteriori informazioni, consulta Consentire l'accesso dell'interfaccia utente perimetrale agli indirizzi IP locali.