Edge per Private Cloud v. 4.17.09
L'autenticazione di base è un modo per eseguire l'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 userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
In questo esempio, utilizzerai l'opzione cURL -u per passare le credenziali di autenticazione di base. In alternativa, puoi passare un token OAuth2 nell'intestazione Bearer
per effettuare chiamate API Edge Management. Ad esempio:
curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName
Dopo aver abilitato SAML, puoi facoltativamente disabilitare l'autenticazione di base. Se disabiliti l'autenticazione di base, tutti gli script (script Maven, script shell, apigeetool
e così via) 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 passare i token di accesso OAuth2 nell'intestazione di connessione.
Utilizzo di get_token per ottenere e aggiornare i token
L'utilità get_token
scambia le credenziali di autenticazione di base e un passcode con un token di accesso e aggiornamento OAuth2. L'utilità get_token
accetta le tue credenziali e stampa un token di accesso valido. Se un token può essere aggiornato, viene aggiornato e stampato. 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 l'uso quando necessario. Inoltre, stampa un token di accesso valido per stdout.
Da qui, puoi utilizzare Postman o incorporarlo in una variabile di ambiente da utilizzare in curl.
La procedura seguente descrive come utilizzare get_token
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 del nome DNS della macchina che ospita il modulo SSO perimetrale. Se hai configurato TLS sull'SSO Edge, utilizza
https
e il numero di porta TLS corretto. - Decomprimi il pacchetto
ssocli-bundle.zip
:unzip ssocli-bundle.zip
- Installa
get_token
in/usr/local/bin
:
./install
Utilizza l'opzione
-b
per specificare una località diversa:./install -b path
- Imposta la variabile di ambiente
SSO_LOGIN_URL
sull'URL di accesso, nel formato:export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
dove edge_sso_IP_DNS è l'indirizzo IP del nome DNS della macchina che ospita il modulo SSO perimetrale. Se hai configurato TLS sull'SSO Edge, utilizza
https
e il numero di porta TLS corretto. - Da un browser, vai al seguente URL per ottenere un passcode monouso:
http://edge_sso_IP_DNS:9099/passcode
Se hai configurato TLS sull'SSO Edge, utilizza
https
e il numero di porta TLS corretto.Questo URL restituisce un passcode una-tantum che rimane valido finché non lo aggiorni per ottenere un nuovo passcode oppure utilizzi il passcode con
get_token
per generare un token di accesso. - Richiama
get_token
per ottenere il token di accesso OAuth2:
get_token -u emailAddress
dove emailAddress è l'indirizzo email di un utente Edge. Ti viene chiesto di inserire il passcode monouso ottenuto nel passaggio 3:
One Time Code ( Get one at https://edge_sso_IP.com/passcode ) Enter the passcode if SAML is enabled or press ENTER:
Inserisci il passcode. L'utilità
get_token
ottiene il token di accesso OAuth2, lo stampa sullo schermo e lo scrive insieme al token di aggiornamento in~/.sso-cli
.Puoi inserire il passcode nella riga di comando utilizzando un comando
get_token
nel modulo:get_token -u emailAddress -p passcode
- Passa il token di accesso a una chiamata API di gestione perimetrale come intestazione di connessione:
curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
Dopo aver ottenuto un nuovo token di accesso per la prima volta, puoi ottenere il token di accesso e passarlo a una chiamata API con un singolo comando, come mostrato di seguito:
header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
Con questa forma di comando, se il token di accesso è scaduto, viene aggiornato automaticamente fino alla scadenza del token di aggiornamento.
Dopo la scadenza del token di aggiornamento, get_token
ti chiede un nuovo passcode. Prima di poter generare un nuovo token di accesso OAuth, devi andare all'URL mostrato sopra nel passaggio 3 e generare un nuovo passcode
Utilizzo dell'API di gestione per recuperare e aggiornare i token
Utilizzare la sicurezza OAuth2 con l'API Apigee Edge Management contiene istruzioni che mostrano come utilizzare l'API Edge Management per ottenere e aggiornare i token. Puoi anche utilizzare le chiamate API Edge per per i 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, devi includere il passcode, come mostrato nel passaggio 3 della procedura riportata sopra.
Ad esempio, 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'
Per l'autorizzazione, passa una credenziale client OAuth2 riservata nell'intestazione Authorization
. La chiamata stampa i token di accesso e di aggiornamento sullo schermo.
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=refreshToken'