Stai visualizzando la documentazione di Apigee Edge.
Vai alla 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 proxy tramite Apigee Adapter per Envoy.
1. Accedi ad Apigee
- Apri l'interfaccia utente di Apigee in un browser.
- Una volta nell'interfaccia utente, seleziona la stessa organizzazione utilizzata per configurare Apigee Adapter per 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 Dettagli prodotto come segue. Non fare clic su Salva fino a quando non ti viene chiesto di farlo.
- Nella sezione Destinatari dei servizi remoti Apigee, fai clic su Aggiungi un destinatario del servizio remoto Apigee.
- Nella finestra di dialogo Destinazione del servizio remoto Apigee, aggiungi i seguenti valori:
Attributo Valore Descrizione Nome destinazione Inserisci il nome del servizio di destinazione. Ad esempio: httpbin.org
L'endpoint di destinazione davanti al proxy Envoy. Percorso Inserisci un /resource_path
che corrisponda a un percorso specifico. Ad esempio:/httpbin
.Il percorso della richiesta da associare all'endpoint di destinazione. Le chiamate proxy API a questo percorso corrisponderanno a questo prodotto API. - Fai clic su Salva.
Campo | Valore |
---|---|
Nome | httpbin-product
|
Nome visualizzato | httpbin product
|
Ambiente | your_environment
Impostalo sull'ambiente utilizzato per il provisioning dell'adattatore Apigee per Envoy con
|
Accesso | Private
|
Quota | 5 richieste ogni minuto
Consulta anche Informazioni sulle quote. |
4. Creazione di un'app sviluppatore
- Seleziona Pubblica > App nel menu di navigazione laterale.
- Fai clic su + App.
- Compila la pagina dell'app sviluppatore come segue. Non salvare finché non ti viene chiesto di farlo.
- Dopodiché, aggiungi due prodotti all'app:
- Nella sezione Credenziali, fai clic su + Aggiungi prodotto e seleziona il prodotto appena configurato: httpbin-product.
- 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
.
Informazioni sui prodotti API
I prodotti API sono il punto di controllo principale per il servizio Apigee Remote. 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 da parte di Apigee Adapter per 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 di servizio remoti
La definizione del prodotto API verrà applicata a una richiesta se corrisponde sia all'associazione di destinazione (ad esempio,
httpbin.org
) sia al percorso di richiesta (ad esempio,/httpbin
). Un elenco di potenziali target viene archiviato come attributo nel prodotto API.Per impostazione predefinita, il servizio Apigee Remote controlla l'intestazione
:authority (host)
speciale di Envoy rispetto al suo elenco di target. Tuttavia, può essere configurato per utilizzare altre intestazioni.Percorso risorsa API
Il percorso inserito corrisponde in base alle seguenti regole:
- Una singola barra (
/
) da sola corrisponde a qualsiasi percorso. *
è valido ovunque e corrisponde all'interno di un segmento (tra barre oblique).**
è valido alla fine e corrisponde a qualsiasi carattere fino alla fine della riga.
Quota
Una quota specifica il numero di messaggi di richiesta che un'app può inviare a un'API nel corso 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ò inviare a un servizio in un determinato periodo di tempo. Le quote vengono spesso utilizzate per far rispettare contratti aziendali o SLA con sviluppatori e partner, anziché per la gestione operativa del traffico. 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 di quota sono configurati nei prodotti API. Ad esempio, quando crei un prodotto API, puoi impostare facoltativamente il limite di quota, l'unità di tempo e l'intervallo consentiti.
Poiché le chiavi API vengono associate ai prodotti API, ogni volta che viene verificata una chiave API, il contatore delle quote appropriato può essere decrementato (se è definita una quota 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 ai fini della quota consentita.
Dove vengono mantenute le quoteLe quote vengono gestite e controllate localmente dal processo del servizio remoto e gestite in modo asincrono con Apigee Runtime. Ciò significa che le quote non sono precise e potrebbero verificarsi alcuni superamenti se hai più di un servizio remoto che gestisce la quota. Se la connessione al runtime Apigee viene interrotta, la quota locale continuerà come quota standalone fino al momento in cui potrà riconnettersi al runtime Apigee.
Ambiti OAuth
Se utilizzi i token JWT, puoi limitarli a sottoinsiemi degli ambiti OAuth consentiti. Gli ambiti assegnati al token JWT emesso verranno verificati in base agli ambiti del prodotto API.
Informazioni sulle app sviluppatore
Dopo aver configurato i tuoi prodotti API, dovrai creare 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 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 JWT Authentication Filter.
Una volta autenticato, il filtro
ext-authz
di Envoy invia le intestazioni della richiesta e il JWT aapigee-remote-service-envoy
. Corrisponde ai claimapi_product_list
escope
del JWT ai 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
In alternativa, puoi utilizzare 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 direttamente l'URI 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 avere il seguente aspetto:
- "I segmenti di pubblico in JWT non sono consentiti"
- "L'emittente JWT non è configurato"
Si tratta di requisiti nella configurazione di Envoy che potresti dover modificare.
Ispezionare un token
Puoi utilizzare l'interfaccia a riga di comando per controllare 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
Consulta Chiave API valida non funziona.Logging
Puoi modificare 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 del log come record JSON. Envoy fornisce la registrazione. Per ulteriori informazioni, consulta i seguenti link alla documentazione di Envoy:
Utilizzo di un proxy di rete
Un proxy HTTP può essere inserito utilizzando le variabili di ambiente HTTP_PROXY e HTTPS_PROXY nell'ambiente del file binario apigee-remote-service-envoy. Quando le utilizzi, la variabile di ambiente NO_PROXY può essere utilizzata anche 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. Consulta la sezione File di configurazione.Dati di Envoy
I seguenti link forniscono informazioni su come ottenere i dati di analisi del proxy Envoy:
Dati e analisi di Istio
I seguenti link forniscono informazioni su come ottenere i dati di analisi del proxy Envoy:
Apigee Analytics
Apigee Remote Service for Envoy invia le statistiche sulle richieste ad Apigee per l'elaborazione di analisi. Apigee registra queste richieste sotto il nome del prodotto API associato.
Per informazioni su Apigee Analytics, consulta la panoramica dei servizi di analisi.
Nome | httpbin-app
|
Nome visualizzato | httpbin app
|
Developer | Seleziona lo sviluppatore che hai creato in precedenza o scegli uno qualsiasi dall'elenco. |