Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Come ottenere una chiave API
L'esempio seguente spiega come ottenere una chiave API che puoi utilizzare per convalidare le chiamate API a un servizio di destinazione con proxy tramite Apigee Adapter for Envoy.
1. Accedi ad Apigee
- Apri la UI di Apigee in un browser.
- Una volta nella UI, seleziona la stessa organizzazione che hai utilizzato per configurare Apigee Adapter for Envoy.
2. Creazione di uno sviluppatore
Puoi utilizzare uno sviluppatore esistente per i test o crearne uno nuovo come segue:
- Seleziona Pubblica > Sviluppatori nel menu di navigazione laterale.
- Fai clic su + Sviluppatore.
- Compila la finestra di dialogo per creare un nuovo sviluppatore. Puoi utilizzare qualsiasi nome/indirizzo email dello sviluppatore che preferisci.
3. Creazione di un prodotto API
Segui l'esempio di creazione del prodotto fornito di seguito. Vedi anche Informazioni sulla configurazione del prodotto API.
- Seleziona Pubblica > Prodotti API nel menu di navigazione laterale.
- Fai clic su + Prodotto API.
- Compila la pagina dei dettagli del prodotto come segue. Non fare clic su Salva finché non ti viene richiesto.
- Nella sezione Target del servizio remoto Apigee, fai clic su Aggiungi un target del servizio remoto Apigee.
- Nella finestra di dialogo Target del servizio remoto Apigee, aggiungi i seguenti valori:
Attributo Valore Descrizione Nome target Inserisci il nome del servizio di destinazione. Ad esempio: httpbin.orgL'endpoint di destinazione di cui è stato eseguito il front-end dal proxy Envoy. Proxy API remote-serviceIl proxy remote-servicedi cui è stato eseguito il provisioning su Apigee durante l'installazione di Envoy Adapter.Percorso Inserisci un /resource_pathper trovare una corrispondenza con un percorso specifico. Ad esempio:/httpbin.Il percorso della richiesta per trovare una corrispondenza con l'endpoint di destinazione. Le chiamate al proxy API a questo percorso corrisponderanno a questo prodotto API. Edge Public Cloud o Private Cloud: Lo screenshot seguente mostra le impostazioni della finestra di dialogo configurate correttamente per il
httpbin.orgtarget, una configurazione appropriata per Apigee Edge Public Cloud o Private Cloud.
- Fai clic su Salva.
| Campo | Valore |
|---|---|
| Nome | httpbin-product
|
| Nome visualizzato | httpbin product
|
| Ambiente | your_environment
Imposta questo valore sull'ambiente che hai utilizzato quando hai eseguito il provisioning di Apigee Adapter for Envoy con
the |
| Accesso | Private
|
| Quota | 5 richieste ogni 1 minuto
Vedi anche Informazioni sulle quote. |
4. Creazione di un'app per sviluppatori
- Seleziona Pubblica > App nel menu di navigazione laterale.
- Fai clic su + App.
- Compila la pagina dell'app per sviluppatori come segue. Non salvare finché non ti viene richiesto.
- Poi, aggiungi due prodotti all'app:
- Innanzitutto, nella sezione Credenziali, fai clic su + Aggiungi prodotto e seleziona il prodotto che hai appena configurato: httpbin-product.
- Poi, aggiungi il prodotto remote-service. Questo prodotto è stato creato automaticamente quando hai eseguito il provisioning di Apigee.
- Fai clic su Crea.
- In Credenziali, fai clic su Mostra accanto a Chiave.
- Copia il valore della chiave consumer. Questo valore è la chiave API che utilizzerai per effettuare chiamate API al servizio
httpbin.
| Nome | httpbin-app
|
| Nome visualizzato | httpbin app
|
| Sviluppatore | Seleziona lo sviluppatore che hai creato in precedenza o scegli lo sviluppatore che preferisci dall'elenco. |
Informazioni sui prodotti API
I prodotti API sono il punto di controllo principale per il servizio remoto Apigee. Quando crei un prodotto API e lo associ a un servizio di destinazione, crei un criterio che verrà applicato a tutte le richieste che configuri per la gestione di Apigee Adapter for Envoy
Definizione del prodotto API
Quando definisci un prodotto API in Apigee, puoi impostare una serie di parametri che verranno utilizzati per valutare le richieste:
- Target
- Percorso richiesta
- Quota
- Ambiti OAuth
Target del servizio remoto
La definizione del prodotto API verrà applicata a una richiesta se questa corrisponde sia all'associazione del target (ad esempio httpbin.org) sia al percorso della richiesta (ad esempio /httpbin).
Un elenco di potenziali target viene memorizzato come attributo nel
prodotto API.
Per impostazione predefinita, il servizio remoto Apigee controlla l'intestazione speciale :authority (host) di Envoy rispetto a
l'elenco di target; tuttavia, può essere configurato per utilizzare altre intestazioni.
Percorso della risorsa API
Il percorso inserito corrisponde in base alle seguenti regole:
- Una singola barra (
/) corrisponde a qualsiasi percorso. *è valido ovunque e corrisponde all'interno di un segmento (tra le barre).**è valido alla fine e corrisponde a qualsiasi elemento fino alla fine della riga.
Quota
Una quota specifica il numero di messaggi di richiesta che un'app è autorizzata a inviare a un API nell'arco di un'ora, un giorno, una settimana o un mese. Quando un'app raggiunge il limite di quota, le chiamate API successive vengono rifiutate.
Casi d'uso delle quoteLe quote ti consentono di applicare il numero di richieste che un client può effettuare a un servizio in un determinato periodo di tempo. Le quote vengono spesso utilizzate per applicare contratti commerciali o SLA con sviluppatori e partner, anziché per la gestione del traffico operativo. Ad esempio, una quota potrebbe essere utilizzata per limitare il traffico per un servizio senza costi, consentendo al contempo l'accesso completo ai clienti paganti.
La quota è definita in un prodotto APII parametri delle quote vengono configurati nei prodotti API. Ad esempio, quando crei un prodotto API , puoi impostare facoltativamente il limite di quota consentito, l'unità di tempo e l'intervallo.
Poiché le chiavi API vengono mappate ai prodotti API, ogni volta che una chiave API viene verificata, il contatore delle quote appropriato può essere decrementato (se una quota è definita nel prodotto associato).
A differenza del runtime Apigee, le quote inserite nella definizione del prodotto vengono applicate automaticamente dal servizio remoto Apigee. Se la richiesta è autorizzata, verrà conteggiata rispetto alla quota consentita.
Dove vengono mantenute le quoteLe quote vengono mantenute e controllate localmente dal processo del servizio remoto e mantenute in modo asincrono con il runtime Apigee. Ciò significa che le quote non sono precise e probabilmente avranno un eccesso se hai più di un servizio remoto che mantiene la quota. Se la connessione al runtime Apigee viene interrotta, la quota locale continuerà come quota autonoma finché non sarà possibile riconnettersi al runtime Apigee.
Ambiti OAuth
Se utilizzi i token JWT, puoi limitare i token ai sottoinsiemi degli ambiti OAuth consentiti. Gli ambiti assegnati al token JWT emesso verranno confrontati con gli ambiti del prodotto API.
Informazioni sulle app per sviluppatori
Dopo aver configurato i prodotti API, creerai un'app associata a uno sviluppatore. L'app consente a un client di accedere ai prodotti API associati con una chiave API o un token JWT.
Utilizzo dell'autenticazione basata su JWT
Puoi utilizzare un token JWT per effettuare chiamate al proxy API autenticate anziché utilizzare una chiave API. Questa
sezione spiega come utilizzare il comando apigee-remote-service-cli token per
creare, ispezionare e ruotare i token JWT.
Panoramica
La verifica e l'autenticazione JWT vengono gestite da Envoy utilizzando il filtro di autenticazione JWT .
Una volta autenticato, il filtro ext-authz di Envoy invia le intestazioni delle richieste e il JWT a
apigee-remote-service-envoy. Confronta le rivendicazioni api_product_list e scope del JWT
con i prodotti API Apigee per autorizzarlo rispetto al target della richiesta.
Creazione di token JWT Apigee
I token JWT Apigee possono essere creati utilizzando l'interfaccia a riga di comando:
apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET
Oppure utilizzando l'endpoint del token OAuth standard. Esempio di curl:
curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"Utilizzo del token JWT
Una volta ottenuto il token, devi semplicemente passarlo a Envoy nell'intestazione Authorization. Esempio:
curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"
Errore del token JWT
Rifiuto di Envoy
Se Envoy rifiuta il token, potresti visualizzare un messaggio simile al seguente:
Jwks remote fetch is failed
In questo caso, assicurati che la configurazione di Envoy contenga un URI valido nella sezione
remote_jwks, che sia raggiungibile da Envoy e che tu abbia impostato correttamente i certificati quando hai installato il proxy Apigee. Dovresti essere in grado
di chiamare l'URI direttamente con una chiamata GET e ricevere una risposta JSON valida.
Esempio:
curl https://myorg-eval-test.apigee.net/remote-service/certs
Altri messaggi di Envoy potrebbero essere simili a:
- "Audiences in Jwt are not allowed"
- "Jwt issuer is not configured"
Questi provengono dai requisiti della configurazione di Envoy che potresti dover modificare.
Ispezionare un token
Puoi utilizzare l'interfaccia a riga di comando per ispezionare il token. Esempio
apigee-remote-service-cli -c config.yaml token inspect -f path/to/file
o
apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN
Debug
Vedi La chiave API valida non funziona.Logging
Puoi regolare il livello di logging nel servizio $REMOTE_SERVICE_HOME/apigee-remote-service-envoy. Tutti i log vengono inviati a stderr.
| Elemento | Obbligatorio | Descrizione |
|---|---|---|
| -l, --log-level | Livelli validi: debug, info, warn, error. | Regola il livello di logging. Valore predefinito: info |
| -j, --json-log | Emette l'output dei log come record JSON. |
Envoy fornisce la registrazione nei log. Per ulteriori informazioni, consulta i seguenti link alla documentazione di Envoy:
- Registrazione nei log delle applicazioni
- Log di accesso
- Registrazione nei log di Stackdriver con GKE
Utilizzo di un proxy di rete
È possibile inserire un proxy HTTP utilizzando le variabili di ambiente HTTP_PROXY e HTTPS_PROXY nell'ambiente del file binario apigee-remote-service-envoy. Quando le utilizzi, puoi utilizzare anche la variabile di ambiente NO_PROXY per escludere host specifici dall'invio tramite il proxy.
HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port] NO_PROXY=127.0.0.1,localhost
Ricorda che il proxy deve essere raggiungibile da apigee-remote-service-envoy.
Informazioni su metriche e analisi
Un endpoint delle metriche Prometheus è disponibile all'indirizzo :5001/metrics. Puoi configurare questo numero di porta. Vedi File di configurazione.
Analisi di Envoy
I seguenti link forniscono informazioni su come ottenere i dati di analisi del proxy Envoy:
Analisi di Istio
I seguenti link forniscono informazioni su come ottenere i dati di analisi del proxy Envoy:
Analisi di Apigee
Il servizio remoto Apigee per Envoy invia le statistiche delle richieste ad Apigee per l'elaborazione delle analisi. Apigee segnala queste richieste con il nome del prodotto API associato.
Per informazioni sull'analisi di Apigee, vedi Panoramica dei servizi di analisi.