Sicurezza dell'ultimo miglio

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

La sicurezza dell'ultimo miglio protegge i servizi di backend inviati tramite proxy dai servizi API. L'obiettivo principale della sicurezza dell'ultimo miglio è prevenire i cosiddetti attacchi "end-run", in cui uno sviluppatore di app scopre l'URL di un servizio di backend e ignora i proxy API per accedere direttamente all'URL di backend.

Di seguito sono riportate le opzioni principali per la configurazione della sicurezza dell'ultimo miglio:

  • TLS/SSL client
  • Autenticazione in uscita
  • Modulo tls Node.js

TLS/SSL client

Il meccanismo principale per proteggere l'ultimo miglio è TLS/SSL client, noto anche come "autenticazione reciproca".

Vedi Configurazione di TLS da Edge al backend (cloud e cloud privato).

Autenticazione in uscita

La sicurezza dell'ultimo miglio può essere applicata anche richiedendo al proxy API di presentare una credenziale al servizio di backend.

Ad esempio, potresti voler fare in modo che un proxy API presenti una chiave API al tuo servizio di backend. Puoi anche chiedere a un proxy API di ottenere e presentare un token di accesso alle credenziali del client OAuth.

Chiave API

Le chiavi API possono essere applicate alle richieste in uscita dai proxy API ai servizi di backend. Questo presuppone che il servizio di backend sia un'API in grado di emettere e convalidare le chiavi API.

Se configuri un proxy API per presentare una chiave API nelle richieste in uscita, devi archiviarla in un punto in cui possa essere recuperata dal proxy API in fase di esecuzione. Una delle località disponibili per l'archiviazione delle chiavi API è una mappa chiave/valore. Consulta le norme relative alle operazioni della mappa chiave-valore.

Puoi utilizzare il tipo di criterio AssegnaMessage per aggiungere la chiave API come intestazione HTTP, parametro di query o elemento payload alla richiesta in uscita. Vedi Assegnare i criteri relativi ai messaggi.

Credenziali client OAuth

Le credenziali del client OAuth possono essere utilizzate per aggiungere un livello di revocabilità alle chiavi API. Se i tuoi servizi di backend supportano le credenziali client OAuth, puoi configurare un proxy API per presentare un token di accesso alle credenziali client per ogni richiesta.

Il proxy API deve essere configurato per l'esecuzione di un callout al fine di ottenere il token di accesso dall'endpoint del token. Il proxy API è inoltre necessario per memorizzare nella cache il token di accesso per impedire che riceva un nuovo token di accesso per ogni chiamata.

È possibile utilizzare diversi approcci per implementare le credenziali client in uscita.

Puoi modificare questo campione in modo da chiamare l'endpoint del token per ottenere un token di accesso. Questo esempio utilizza JavaScript per collegare il token alla richiesta in uscita come intestazione di autorizzazione HTTP. A questo scopo, puoi anche utilizzare il criterio Assegna messaggi.

SAML

Il tipo di criterio Genera SAMLAssertion può essere utilizzato per collegare un'asserzione SAML a un messaggio di richiesta XML in uscita, dal proxy API a un servizio di backend. Ciò consente al servizio di backend di eseguire l'autenticazione e l'autorizzazione per le richieste ricevute dai proxy API.

Vedi Criteri di asserzione SAML.

Node.js

Se la destinazione del proxy API è un'applicazione Node.js, puoi utilizzare il modulo tls Node.js per creare connessioni sicure ai servizi di backend. Puoi effettuare le richieste in uscita con il modulo tls come faresti normalmente in Node.js. In sostanza, devi aggiungere chiavi e certificati lato client (file .pem) alla directory resource/node e caricarli all'interno dello script. Per informazioni sull'utilizzo del modulo tls e dei relativi metodi, consulta la documentazione del modulo TLS di Node.js. Per maggiori informazioni, consulta Informazioni sul supporto Edge per i moduli Node.js.