Sicurezza dell'ultimo miglio

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

La sicurezza dell'ultimo miglio protegge i servizi di backend di cui viene eseguito il proxy da parte di API Services. L'obiettivo principale della sicurezza dell'ultimo miglio è impedire i cosiddetti attacchi "end-run", in cui uno sviluppatore di app scopre l'URL di un servizio di backend e ignora tutti i proxy API per accedere direttamente all'URL del backend.

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

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

TLS/SSL client

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

Consulta Configurazione di TLS da Edge al backend (Cloud e Private Cloud).

Autenticazione in uscita

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

Ad esempio, potresti voler che un proxy API presenti una chiave API al tuo servizio di backend. Potresti anche fare in modo che un proxy API ottenga e presenti un token di accesso con credenziali client OAuth.

Chiave API

Le chiavi API possono essere applicate alle richieste in uscita dai proxy API ai servizi di backend. Ciò 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 archiviare la chiave API in un luogo in cui possa essere recuperata dal proxy API in fase di runtime. Una posizione disponibile per l'archiviazione delle chiavi API è una mappa chiave-valore. Consulta il criterio Operazioni mappa chiave-valore policy.

Puoi utilizzare il tipo di criterio AssignMessage per aggiungere la chiave API come intestazione HTTP, parametro di query o elemento del payload alla richiesta in uscita. Consulta il criterio Assegna messaggio.

Credenziali client OAuth

Le credenziali 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 con credenziali client per ogni richiesta.

Il proxy API deve essere configurato per eseguire una callout per ottenere il token di accesso dall'endpoint del token. Il proxy API è inoltre necessario per memorizzare nella cache il token di accesso, in modo da non ottenere un nuovo token di accesso per ogni chiamata.

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

Puoi modificare questo esempio per chiamare l'endpoint del token per ottenere un token di accesso. Questo esempio utilizza JavaScript per allegare il token alla richiesta in uscita come intestazione HTTP Authorization. A questo scopo, puoi anche utilizzare il criterio Assegna messaggio.

SAML

Il tipo di criterio GenerateSAMLAssertion può essere utilizzato per allegare un'asserzione SAML a un messaggio di richiesta XML in uscita, dal proxy API a un servizio di backend. In questo modo, il servizio di backend può eseguire l'autenticazione e l'autorizzazione sulle richieste ricevute dai proxy API.

Consulta i 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. Le richieste in uscita con il modulo tls vengono effettuate normalmente in Node.js. In pratica, devi aggiungere chiavi e certificati lato client (file .pem) a la directory resources/node e caricarli nello script. Per informazioni sull'utilizzo del tls modulo e dei relativi metodi, consulta la documentazione del modulo tls di Node.js. Per saperne di più, consulta Informazioni sul supporto di Edge per i moduli Node.js.