Questa pagina si applica a Apigee e Apigee ibridi.
Visualizza
documentazione di Apigee Edge.
Puoi configurare la convalida della chiave API per un'API allegando un criterio di tipo "Verify API Key" (Verifica chiave API). La l'unica impostazione obbligatoria per un criterio VerifyAPIKey è la posizione prevista della chiave API nel dalla richiesta del cliente. Il proxy API controllerà la posizione specificata ed estrarrà la chiave API. Se la chiave API non è presente nella posizione prevista, viene generato un errore e la richiesta viene rifiutata. Le chiavi API si trovano in un parametro di query, in un parametro modulo o in una intestazione.
Ad esempio, la configurazione dei criteri riportata di seguito definisce la posizione della chiave prevista come una query
denominato apikey
. Una richiesta riuscita deve presentare la chiave API come una query
parametro aggiunto alla richiesta, ad esempio ?apikey=Y7yeiuhcbKJHD790
.
Per verificare le chiavi API, crea il criterio seguente:
<VerifyAPIKey name="APIKeyValidation"> <APIKey ref="request.queryparam.apikey"/> </VerifyAPIKey>
Questo criterio può essere collegato a qualsiasi API che devi proteggere.
La documentazione completa di questo tipo di norme è disponibile nell'apposito argomento. CriterioVerifyAPIKey.
I proxy API passano automaticamente attraverso tutte le intestazioni HTTP e parametri di ricerca presenti
sulla richiesta. Pertanto, dopo aver verificato la chiave API, è una buona idea rimuoverla
il messaggio in modo che la chiave API non venga inviata via cavo al servizio di backend. Puoi farlo
utilizzando un criterio di tipo AssignMessage
come segue:
<AssignMessage name="StripApiKey"> <DisplayName>Remove Query Param</DisplayName> <Remove> <QueryParams> <QueryParam name="apikey"/> </QueryParams> </Remove> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"></AssignTo> </AssignMessage>
Allegato criterio
I criteri devono essere collegati a un flusso proxy API come passaggi di elaborazione. Applicando il criterio
alla richiesta PreFlow
, le chiavi API vengono verificate per ogni richiesta ricevuta dal proxy API da un
dell'app client. Dopo la verifica, la chiave API viene rimossa dalla richiesta in uscita.
Collega i criteri al ProxyEndpoint del proxy API da proteggere come segue:
<ProxyEndpoint name="default"> <PreFlow> <Request> <Step><Name>APIKeyValidation</Name></Step> <Step><Name>StripApiKey</Name></Step> </Request> </PreFlow>
Dopo aver collegato il criterio, esegui il deployment del proxy API.
Invio di una richiesta con una chiave API valida
In qualità di amministratore della tua organizzazione, puoi recuperare la chiave API di qualsiasi app nel seguente modo:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/developers/$DEVELOPER_EMAIL/apps/$APP \ -H "Authorization: Bearer $TOKEN"
Dove $TOKEN
è impostato sul tuo token di accesso OAuth 2.0, come descritto in
Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl
utilizzate in questo esempio, vedi
Con curl. Per una descrizione delle variabili di ambiente utilizzate,
consulta Impostare le variabili di ambiente per le richieste API Apigee.
Il profilo dell'app restituito per questa chiamata fornisce la chiave utente (chiave API) e il secret. Il valore della chiave utente è il valore che utilizzi per la chiave API nella tua richiesta all'account API.
Ad esempio, una richiesta che non include una chiave API genera un'autorizzazione errore.
curl http://apitest.examplepetstore.com/weather/forecastrss?w=12797282
Il messaggio di errore indica che il criterio ha verificato una chiave API, ma non è stata trovata una chiave valida chiave:
OAuth Failure : Could not resolve the app key with variable request.queryparam.apikey
Quando la chiave utente per l'app viene inclusa come parametro di query, il risultato previsto è autorizzazione:
curl http://apitest.examplepetstore.com/weather/forecastrss?w=12797282&"apikey=PulSCqMnXGchW0pC0s5o9ngHVTWMeLqk"
Il risultato previsto è una risposta positiva da parte del servizio meteo.
La modifica del valore del valore della chiave API nella richiesta determina un'autorizzazione errore:
curl http://apitest.examplepetstore.com/weather?forecastrss?w=12797282&"apikey=PulSCqMnXGchW0"
Risultati in:
OAuth Failure : Consumer Key is Invalid