Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Cosa imparerai a fare
In questo tutorial imparerai a:
- Crea un proxy API che richiede una chiave API.
- Aggiungi un prodotto API.
- Aggiungi uno sviluppatore e registra un'app.
- Chiama la tua API con una chiave API.
È importante proteggere la tua API da accessi non autorizzati. Un modo per farlo è utilizzare le chiavi API (chiamate anche chiavi pubbliche, chiavi consumer o chiavi app).
Quando un'app effettua una richiesta alla tua API, deve fornire una chiave valida. In fase di runtime, il criterio Verifica chiave API controlla che la chiave API fornita:
- È valido
- Non è stata revocata
- Corrisponde alla chiave API del prodotto API che espone le risorse richieste
Se la chiave è valida, la richiesta viene autorizzata. Se la chiave non è valida, la richiesta genera un errore di autorizzazione.
In questo tutorial, creerai un proxy API che richiede una chiave API valida per accedervi.
Che cosa ti serve
- Un account Apigee Edge. Se non ne hai ancora uno, puoi registrarti seguendo le istruzioni riportate nella pagina Creazione di un account Apigee Edge.
- Un browser web per effettuare una chiamata API.
- (Per la sezione dei crediti extra, non obbligatoria) cURL installato sul tuo computer per effettuare chiamate API dalla riga di comando.
Crea il proxy API
- Vai a https://apigee.com/edge e accedi.
Passa all'organizzazione che preferisci facendo clic sul tuo nome utente nella parte superiore della barra di navigazione laterale per visualizzare il menu del profilo utente, quindi selezionando l'organizzazione dall'elenco.
-
Fai clic su Proxy API nella pagina di destinazione per visualizzare l'elenco dei proxy API.
- Fai clic su + Proxy.

- Nella pagina Crea proxy, seleziona Proxy inverso (il più comune).
- Nella pagina Dettagli proxy, configura il proxy come segue:
In questo campo Fai questo Nome proxy Inserisci: helloworld_apikeyProject Base Path Cambia con:
/helloapikeyIl percorso di base del progetto fa parte dell'URL utilizzato per inviare richieste al proxy API.
Nota: per i consigli di Apigee sul controllo delle versioni delle API, consulta Controllo delle versioni nell'ebook Web API Design: The Missing Link.
API esistente Inserisci:
http://mocktarget.apigee.netDefinisce l'URL di destinazione richiamato da Apigee Edge in una richiesta al proxy API.
Descrizione Inserisci: hello world protected by API key - Fai clic su Avanti.
- Nella pagina Norme comuni, per Sicurezza: Autorizzazione, seleziona Chiave API e poi fai clic su Avanti. In questo modo vengono aggiunti due criteri al proxy API.
- Nella pagina Host virtuali, seleziona default e
secure, quindi fai clic su Avanti. Se selezioni default, puoi chiamare l'API con
http://. Se selezioni secure, puoi chiamare la tua API conhttps://. - Nella pagina Riepilogo, assicurati che sia selezionato l'ambiente di deployment test, quindi fai clic su Crea e implementa.
- Verrà visualizzata una conferma che il nuovo proxy API e un prodotto API sono stati creati correttamente e che il proxy API è stato eseguito il deployment nell'ambiente di test.
- Fai clic su Modifica proxy per visualizzare la pagina Panoramica del proxy API.
Visualizzare le norme
- Nell'editor proxy API, fai clic sulla scheda Sviluppa. Vedrai che
sono state aggiunte due policy al flusso di richieste del proxy API:
- Verifica chiave API:controlla la chiamata API per assicurarsi che sia presente una chiave API valida (inviata come parametro di query).
- Rimuovi il parametro di query apikey: una policy AssignMessage che rimuove la chiave API dopo che è stata controllata, in modo che non venga passata e esposta inutilmente.
-
Fai clic sull'icona del criterio Verifica chiave API nella visualizzazione del flusso e guarda la configurazione XML del criterio nella visualizzazione del codice in basso. L'elemento
<APIKey>indica alla policy dove deve cercare la chiave API quando viene effettuata la chiamata. Per impostazione predefinita, cerca la chiave come parametro di query denominatoapikeynella richiesta HTTP:<APIKey ref="request.queryparam.apikey" />
Il nome
apikeyè arbitrario e può essere qualsiasi proprietà che contenga la chiave API.
Prova a chiamare l'API
In questo passaggio, effettuerai una chiamata API riuscita direttamente al servizio di destinazione, poi effettuerai una chiamata non riuscita al proxy API per vedere come viene protetto dai criteri.
-
Operazione riuscita
In un browser web, vai al seguente indirizzo. Si tratta del servizio di destinazione a cui il proxy API è configurato per inoltrare la richiesta, ma per ora lo raggiungerai direttamente:
http://mocktarget.apigee.net
Dovresti ricevere questa risposta di esito positivo:
Hello, Guest! -
Errore
Ora prova a chiamare il proxy API:
http://ORG_NAME-test.apigee.net/helloapikey
sostituendo
ORG_NAMEcon il nome della tua organizzazione Edge.Senza il criterio Verifica chiave API, questa chiamata restituirebbe la stessa risposta della chiamata precedente. Ma in questo caso dovresti ricevere la seguente risposta di errore:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
il che significa, correttamente, che non hai passato una chiave API valida (come parametro di query).
Nei passaggi successivi aggiungerai un prodotto API.
Aggiungere un prodotto API
Per aggiungere un prodotto API utilizzando l'interfaccia utente Apigee:
- Seleziona Pubblica > Prodotti API.
- Fai clic su + Prodotto API.
Inserisci i dettagli del prodotto per il tuo prodotto API.
Campo Descrizione Nome Nome interno del prodotto API. Non specificare caratteri speciali nel nome.
Nota:non puoi modificare il nome una volta creato il prodotto API. Ad esempio,helloworld_apikey-Product.Nome visualizzato Nome visualizzato per il prodotto API. Il nome visualizzato viene utilizzato nell'interfaccia utente e puoi modificarlo in qualsiasi momento. Se non specificato, verrà utilizzato il valore Nome. Questo campo viene compilato automaticamente utilizzando il valore Nome; puoi modificare o eliminare i suoi contenuti. Il nome visualizzato può includere caratteri speciali. Ad esempio, helloworld_apikey-Product.Descrizione Descrizione del prodotto API. Ad esempio, Test product for tutorial.Ambiente Gli ambienti a cui il prodotto API consentirà l'accesso. Ad esempio, testoprod.Accesso Seleziona Pubblico. Approva automaticamente le richieste di accesso Attiva l'approvazione automatica delle richieste di chiavi per questo prodotto API da qualsiasi app. Quota Ignora per questo tutorial. Ambiti OAuth consentiti Ignora per questo tutorial. - Nella sezione Risorse API, seleziona il proxy API che hai appena
creato. Ad esempio,
helloworld_apikey. - Fai clic su Aggiungi.
- Nella sezione Percorsi, aggiungi il percorso "/".
- Fai clic su Aggiungi.
- Fai clic su Salva.
Nei passaggi successivi, otterrai la chiave API richiesta.
Aggiungere uno sviluppatore e un'app alla tua organizzazione
Successivamente, simuleremo il flusso di lavoro di uno sviluppatore che si registra per utilizzare le tue API. Uno sviluppatore avrà una o più app che chiamano le tue API e ogni app riceve una chiave API univoca. In questo modo, in qualità di fornitore di API, avrai un controllo più granulare sull'accesso alle tue API e report più granulari sul traffico API per app.
Creare uno sviluppatore
Per creare uno sviluppatore:
- Seleziona Pubblica > Sviluppatori nel menu.
- Fai clic su + Sviluppatore.
Nella finestra Nuovo sviluppatore, inserisci quanto segue:
In questo campo invio Nome KeyserCognome SozeNome utente keyserEmail keyser@example.com- Fai clic su Crea.
Registra un'app
Per registrare un'app per sviluppatori:
- Seleziona Pubblica > App.
- Fai clic su + App.
Nella finestra Nuova app, inserisci quanto segue:
pIn questo campo Fai questo Nome e Nome visualizzato Inserisci: keyser_appAzienda / Sviluppatore Seleziona: DeveloperDeveloper Seleziona: Keyser Soze (keyser@example.com)Callback URL (URL di callback) e Note Lascia vuoto - Nella sezione Credenziali, seleziona Mai dal menu Scadenza. Le credenziali per questa app non scadranno mai.
- In Prodotti, fai clic su Aggiungi prodotto.
- Seleziona helloworld_apikey-Product.
- Fai clic su Aggiungi.
- Fai clic su Crea sopra e a destra della sezione Dettagli app per salvare il lavoro.
Ottenere la chiave API
Per ottenere la chiave API:
- Nella pagina App (Pubblica > App), fai clic su keyser_app.
Nella pagina keyser_app, fai clic su Mostra accanto a Chiave nella sezione Credenziali. Nella sezione Prodotto, nota che la chiave è associata a helloworld_apikey
.
- Seleziona e copia la chiave. Lo utilizzerai nel passaggio successivo.
Chiamare l'API con una chiave
Ora che hai una chiave API, puoi utilizzarla per chiamare il proxy API. Inserisci quanto segue nel browser web. Sostituisci il nome dell'organizzazione Edge con ORG_NAME e la chiave API con API_KEY di seguito. Assicurati che non ci siano spazi aggiuntivi nel parametro di query.
http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY
Ora, quando chiami il proxy API, dovresti ricevere questa risposta:
Hello, Guest!
Complimenti! Hai creato un proxy API e lo hai protetto richiedendo che nella chiamata sia inclusa una chiave API valida.
Tieni presente che in generale non è consigliabile passare una chiave API come parametro di query. Ti consigliamo di trasmetterlo nell'intestazione HTTP.
Best practice: passare la chiave nell'intestazione HTTP
In questo passaggio, modificherai il proxy in modo che cerchi la chiave API in un'intestazione
denominata x-apikey.
- Modifica il proxy API. Seleziona Sviluppa > Proxy API > helloworld_apikey e vai alla visualizzazione Sviluppa.
-
Seleziona la policy Verifica chiave API e modifica l'XML della policy in modo che cerchi in
headeranziché inqueryparam:<APIKey ref="request.header.x-apikey"/>
- Salva il proxy API per implementare la modifica.
-
Effettua la seguente chiamata API utilizzando cURL per passare la chiave API come intestazione chiamata
x-apikey. Non dimenticare di sostituire il nome della tua organizzazione.curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
Tieni presente che per completare la modifica, devi anche configurare la policy AssignMessage per rimuovere l'intestazione anziché il parametro di query. Ad esempio:
<Remove>
<Headers>
<Header name="x-apikey"/>
</Headers>
</Remove>
Argomenti correlati
Ecco alcuni argomenti direttamente correlati a questo tutorial:
- Gestisci i prodotti API
- Chiavi API
- Registra gli sviluppatori di app
- Registrare le app e gestire le chiavi API
- Norme VerifyAPIKey
- AssignMessage policy
Approfondendo un po' l'argomento, la protezione delle API con le chiavi API è solo una parte della storia. Spesso, la protezione delle API prevede misure di sicurezza aggiuntive come OAuth.
OAuth è un protocollo aperto che, in breve, scambia le credenziali (come nome utente e password) con token di accesso. I token di accesso sono stringhe lunghe e casuali che possono essere trasmesse in una pipeline di messaggi, anche da un'app all'altra, senza compromettere le credenziali originali. I token di accesso hanno spesso una durata breve, quindi ne vengono sempre generati di nuovi.