Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
Apigee Edge consente di effettuare chiamate API Edge autenticate con token OAuth2. Il supporto per OAuth2 è abilitato per impostazione predefinita su Edge per gli account cloud. Se utilizzi Edge per il cloud privato, non puoi utilizzare OAuth2 senza prima configurare SAML o LDAP.
Come funziona OAuth2 (con l'API Apigee Edge)
Le chiamate all'API Apigee Edge richiedono l'autenticazione, così possiamo essere sicuri che sei chi dici di essere. Per autenticarti, richiediamo l'invio di un token di accesso OAuth2 con la tua richiesta di accesso all'API.
Ad esempio, se vuoi ottenere dettagli su un'organizzazione su Edge, devi inviare una richiesta a un URL come il seguente:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Ma non puoi semplicemente inviare questa richiesta senza dirci chi sei. In caso contrario, chiunque potrebbe visualizzare i dettagli dell'organizzazione.
È qui che entra in gioco OAuth2: per autenticarti, devi anche inviarci un token di accesso in questa richiesta. Il token di accesso ci comunica chi sei, in modo che tu possa visualizzare i dettagli dell'organizzazione.
Fortunatamente, puoi ottenere un token inviando le tue credenziali al servizio Edge OAuth2. Il servizio risponde con i token di accesso e di aggiornamento.
Flusso OAuth2: la richiesta iniziale
L'immagine seguente mostra il flusso OAuth2 quando accedi all'API Edge per la prima volta:

Come mostra la Figura 1, quando effettui la richiesta iniziale all'API Edge:
- Richiedi un token di accesso. Puoi farlo con
l'API Edge, acurl o
get_token
. Ad esempio:get_token Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:123456
- Il servizio Edge OAuth2 risponde con un token di accesso e lo stampa su
stdout
; ad esempio:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
Le utilità
acurl
eget_token
salvano automaticamente i token di accesso e di aggiornamento in~/.sso-cli
(il token di aggiornamento non è scritto instdout
). Se utilizzi il servizio Edge OAuth2 per ricevere i token, devi salvarli per utilizzarli in un secondo momento. - Invii una richiesta all'API Edge con il token di accesso.
acurl
collega automaticamente il token; ad esempio:acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Se utilizzi un altro client HTTP, assicurati di aggiungere il token di accesso. Ad esempio:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- L'API Edge esegue la richiesta e in genere restituisce una risposta con dati.
Flusso OAuth2: richieste successive
Nelle richieste successive non è necessario scambiare le credenziali per un token. Puoi invece includere il token di accesso già in tuo possesso, a condizione che non sia ancora scaduto:

Come mostra la Figura 2, quando hai già un token di accesso:
- Invii una richiesta all'API Edge con il token di accesso.
acurl
collega automaticamente il token. Se utilizzi altri strumenti, devi aggiungere il token manualmente. - L'API Edge esegue la richiesta e in genere restituisce una risposta con dati.
Flusso OAuth2: quando scade il token di accesso
Quando un token di accesso scade (dopo 12 ore), puoi utilizzarlo per ottenere un nuovo token di accesso:

Come mostra la Figura 3, una volta scaduto il token di accesso:
- Invii una richiesta all'API Edge, ma il token di accesso è scaduto.
- L'API Edge rifiuta la tua richiesta in quanto non autorizzata.
- Invii un token di aggiornamento al servizio Edge OAuth2. Se utilizzi
acurl
, l'operazione viene eseguita automaticamente. - Il servizio Edge OAuth2 risponde con un nuovo token di accesso.
- Invierai una richiesta all'API Edge con il nuovo token di accesso.
- L'API Edge esegue la richiesta e in genere restituisce una risposta con dati.
Trova i token
Per ottenere un token di accesso da inviare all'API Edge, puoi utilizzare le seguenti utilità di Apigee, oltre a un'utilità come curl
:
- Utilità get_token: scambia le credenziali Apigee per i token di accesso e di aggiornamento che puoi utilizzare per chiamare l'API Edge.
- utilità acurl: fornisce un wrapper per la comodità per un comando
curl
standard. Crea richieste HTTP all'API Edge, ottiene i token di accesso e di aggiornamento daget_token
e passa il token di accesso all'API Edge. - Endpoint dei token nel servizio Edge OAuth2: scambia le tue credenziali Apigee per i token di accesso e di aggiornamento tramite una chiamata all'API Edge.
Queste utilità scambiano le credenziali dell'account Apigee (indirizzo email e password) con token con la seguente durata:
- I token di accesso scadono dopo 12 ore.
- I token di aggiornamento scadono dopo 30 giorni.
Di conseguenza, dopo aver effettuato correttamente una chiamata API con acurl
o get_token
,
puoi continuare a utilizzare la coppia di token per 30 giorni. Dopo la scadenza, devi inserire di nuovo le tue credenziali e ricevere nuovi token.
Accedere all'API Edge con OAuth2
Per accedere all'API Edge, devi inviare una richiesta a un endpoint API e includere il token di accesso.
Puoi eseguire questa operazione con qualsiasi client HTTP, inclusa un'utilità a riga di comando come curl
,
un'interfaccia utente basata su browser come Postman o un'utilità Apigee come acurl
.
L'accesso all'API Edge con acurl
e con curl
è descritto nelle sezioni che seguono.
Utilizza acurl
Per accedere all'API Edge con acurl
, la richiesta iniziale deve includere le tue credenziali. Il servizio Edge OAuth2 risponde con i token di accesso e di aggiornamento. acurl
salva i token in locale.
Nelle richieste successive, acurl
utilizza i token salvati in ~/.sso-cli
in modo che tu non debba includere di nuovo le credenziali fino alla scadenza dei token.
L'esempio seguente mostra una richiesta acurl
iniziale che recupera i dettagli dell'organizzazione "ahamilton-eval":
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c
{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies
[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]
Oltre a ottenere dettagli sull'organizzazione, questo esempio mostra anche una seconda richiesta che riceve un elenco di criteri all'interno del proxy API "helloworld". La seconda richiesta utilizza l'abbreviazione "o" per "organizzazioni" nell'URL.
Tieni presente che acurl
passa automaticamente il token di accesso alla seconda richiesta. Non è
necessario passare le credenziali utente dopo che acurl
ha archiviato i token OAuth2. Recupera il token da ~/.sso-cli
per le chiamate successive.
Per saperne di più, vedi Utilizzare acurl per accedere all'API Edge.
Usa curl
Puoi usare curl
per accedere all'API Edge. A tale scopo, devi prima ottenere i token di accesso e di aggiornamento. Puoi ottenerle utilizzando un'utilità come get_token
o il
servizio OAuth2 di Edge.
Dopo aver salvato correttamente il token di accesso, lo passi nell'intestazione Authorization
delle chiamate all'API Edge, come mostrato nell'esempio seguente:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
Il token di accesso è valido per 12 ore dall'emissione. Dopo la scadenza del token di accesso, il token di aggiornamento può essere utilizzato per 30 giorni per emettere un altro token di accesso senza richiedere le credenziali. Apigee consiglia di richiedere un nuovo token di accesso solo dopo la scadenza del token di riferimento, anziché inserire le credenziali e creare una nuova richiesta a ogni chiamata API.
Scadenza del token
Una volta scaduto il token di accesso, puoi utilizzarlo per ottenere un nuovo token di accesso senza dover inviare nuovamente le credenziali.
La modalità di aggiornamento del token di accesso dipende dallo strumento che utilizzi:
acurl
: nessuna azione necessaria.acurl
aggiorna automaticamente il token di accesso quando invii una richiesta che ne contiene uno obsoleto.get_token
: chiamaget_token
per aggiornare il token di accesso.- Servizio OAuth2 Edge: invia una richiesta che includa:
- Aggiorna token
- Parametro del modulo
grant_type
impostato su "refresh_token"
OAuth2 per utenti della macchina
Puoi utilizzare le utilità acurl
e get_token
per creare script dell'accesso automatico alle API Edge con l'autenticazione OAuth2 per gli utenti delle macchine. L'esempio seguente mostra come
utilizzare get_token
per
richiedere un token di accesso e quindi aggiungere il valore del token a una chiamata curl
:
USER=me@example.com
PASS=not-that-secret
TOKEN=$(get_token -u $USER:$PASS -m '')
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
In alternativa, puoi combinare la richiesta del token e la chiamata curl
utilizzando l'utilità acurl
.
Ad esempio:
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
In entrambi gli esempi, l'impostazione del valore di -m
su una stringa vuota impedirà a un utente della macchina di richiedere un codice MFA.