Sicurezza dell'ultimo miglio

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

La sicurezza dell'ultimo miglio protegge i servizi di backend proxy 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 aggira i proxy API per raggiungere direttamente l'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 la protezione dell'ultimo miglio è TLS/SSL client, noto anche come "autenticazione reciproca".

Consulta Configurare 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 al servizio di backend.

Ad esempio, potresti volere che un proxy API presenti una chiave API al tuo servizio di backend. Puoi anche avere un proxy API che ottenga e presenti un token di accesso delle credenziali client OAuth.

Chiave API

Le chiavi API possono essere applicate alle richieste in uscita dai proxy API ai servizi di backend. Ciò assume 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 memorizzare la chiave API in un luogo in cui possa essere recuperata dal proxy API in fase di esecuzione. Una posizione disponibile per memorizzare le chiavi API è una mappa chiave/valore. Consulta le norme relative alle operazioni sulle mappe chiave-valore.

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 la sezione Assegnare criteri per i 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 eseguire un 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 impedire di ottenere un nuovo token di accesso per ogni chiamata.

Per implementare le credenziali client in uscita è possibile utilizzare diversi approcci.

Puoi modificare questo esempio per chiamare l'endpoint del token e ottenere un token di accesso. Questo esempio utilizza JavaScript per allegare il token alla richiesta in uscita come intestazione di autorizzazione HTTP. Per questo scopo, puoi anche utilizzare Assegna criteri per i messaggi.

SAML

Il tipo di criterio GenerateSAMLAssertion può essere utilizzato per allegare un'affermazione 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 le norme relative alle affermazioni SAML.

Node.js

Se il target del proxy API è un'applicazione Node.js, puoi utilizzare il modulo Node.js tls per creare connessioni sicure ai servizi di backend. Puoi effettuare 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 resources/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 ulteriori informazioni, consulta Informazioni sul supporto di Edge per i moduli Node.js.