L'autenticazione di base è una delle modalità di autenticazione quando si effettuano chiamate all'API Edge Management.
Ad esempio, puoi effettuare la seguente richiesta curl
all'API Edge Management per accedere alle informazioni sulla tua organizzazione:
curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
In questo esempio, utilizzerai l'opzione -u
curl
per passare le credenziali di autenticazione di base. In alternativa, puoi passare un token OAuth2 nell'intestazione Bearer
per effettuare chiamate API di gestione perimetrale, come illustrato nell'esempio seguente:
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Dopo aver abilitato un IdP esterno per l'autenticazione, puoi scegliere di disabilitare l'autenticazione di base. Se disabiliti l'autenticazione Basic, tutti gli script (come Maven, shell e apigeetool
) che si basano sulle chiamate API di gestione perimetrale che supportano l'autenticazione di base non funzioneranno più. Devi aggiornare
tutte le chiamate API e gli script che utilizzano l'autenticazione di base per trasmettere i token di accesso OAuth2
nell'intestazione Bearer
.
Recuperare e aggiornare i token con get_token
L'utilità get_token
scambia le credenziali di autenticazione di base (e, in alcuni casi, un passcode) con un token di accesso e di aggiornamento OAuth2. L'utilità get_token
accetta le tue credenziali e restituisce un token di accesso valido. Se un token può essere aggiornato, l'utilità lo aggiorna e lo restituisce. Se il token di aggiornamento scade, ti verrà chiesto di inserire le credenziali utente.
L'utilità get_token
archivia i token su disco, pronti per essere utilizzati quando necessario. Stampe anche un token di accesso valido a stdout
. Da qui, puoi utilizzare un'estensione del browser come
Postman o incorporarla in una variabile di ambiente per utilizzarla in curl
.
Per ottenere un token di accesso OAuth2 per effettuare chiamate API Edge Management:
- Scarica il pacchetto
sso-cli
:curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
Dove EDGE_SSO_IP_DNS è l'indirizzo IP o il nome DNS della macchina che ospita il modulo SSO Apigee. Se hai configurato TLS su Apigee SSO, utilizza
https
e il numero di porta TLS corretto. - Decomprimi il pacchetto
ssocli-bundle.zip
, come illustrato nell'esempio seguente:unzip ssocli-bundle.zip
- Installa
get_token
in/usr/local/bin
, come illustrato nell'esempio seguente:./install -b PATH
L'opzione
-b
specifica una località diversa. - Imposta la variabile di ambiente
SSO_LOGIN_URL
sull'URL di accesso, nel seguente formato:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
Dove EDGE_SSO_IP_DNS è l'indirizzo IP della macchina che ospita il modulo SSO Apigee. Se hai configurato TLS su Apigee SSO, utilizza
https
e il numero di porta TLS corretto. - (Solo SAML) In un browser, vai al seguente URL per ottenere un passcode una-tantum:
http://EDGE_SSO_IP_DNS:9099/passcode
Se hai configurato TLS su Apigee SSO, utilizza
https
e il numero di porta TLS corretto.Questa richiesta restituisce un passcode una-tantum che rimane valido finché non aggiorni l'URL per ottenere un nuovo passcode o che utilizzi il passcode con
get_token
per generare un token di accesso.Tieni presente che puoi utilizzare un passcode solo durante l'autenticazione con un IdP SAML. Non puoi utilizzare un passcode per eseguire l'autenticazione con un IdP LDAP.
- Richiama
get_token
per ottenere il token di accesso OAuth2, come mostrato nell'esempio seguente:get_token -u EMAIL_ADDRESS
Dove EMAIL_ADDRESS è l'indirizzo email di un utente Edge.
(Solo SAML) Inserisci il passcode nella riga di comando oltre all'indirizzo email, come illustrato nell'esempio seguente:
get_token -u EMAIL_ADDRESS -p PASSCODE
L'utilità
get_token
ottiene il token di accesso OAuth2, lo stampa sullo schermo e lo scrive insieme al token di aggiornamento su~/.sso-cli
. - Passa il token di accesso a una chiamata API di gestione perimetrale come intestazione
Bearer
, come illustrato nell'esempio seguente:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- Dopo aver ricevuto un nuovo token di accesso per la prima volta, puoi ottenere il token di accesso e passarlo a una chiamata API in un singolo comando, come illustrato nell'esempio seguente:
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
Con questa forma di comando, se il token di accesso è scaduto, viene aggiornato automaticamente fino alla scadenza del token di aggiornamento.
(Solo SAML) Dopo la scadenza del token di aggiornamento, get_token
ti chiede di inserire un nuovo passcode. Prima di poter generare un nuovo token di accesso OAuth, devi accedere all'URL mostrato sopra al passaggio 3 e generare un nuovo passcode.
Utilizza l'API di gestione per recuperare e aggiornare i token
Utilizza la sicurezza OAuth2 con l'API di gestione di Apigee Edge mostra come utilizzare l'API di gestione perimetrale per ottenere e aggiornare i token. Puoi anche utilizzare le chiamate API Edge per ottenere token generati dalle asserzioni SAML.
L'unica differenza tra le chiamate API documentate in Utilizzo della sicurezza OAuth2 con l'API Apigee Edge Management è che l'URL della chiamata deve fare riferimento al nome della tua zona. Inoltre, per generare il token di accesso iniziale con un IdP SAML, devi includere il passcode, come mostrato nel passaggio 3 della procedura precedente.
Per l'autorizzazione, passa una credenziale client OAuth2 riservata nell'intestazione Authorization
. La chiamata stampa i token di accesso e di aggiornamento sullo schermo.
Ottenere un token di accesso
(LDAP) Utilizza la seguente chiamata API per generare i token di accesso iniziale e di aggiornamento:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ http://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'
(SAML) Utilizza la seguente chiamata API per generare i token di accesso e aggiornamento iniziali:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ https://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&response_type=token&passcode=PASSCODE'
Tieni presente che l'autenticazione con un IdP SAML richiede un passcode temporaneo, mentre un IdP LDAP non lo richiede.
Aggiornare un token di accesso
Per aggiornare in un secondo momento il token di accesso, utilizza la chiamata seguente che include il token di aggiornamento:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \ -H "Accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ https://EDGE_SSO_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'