Edge per Private Cloud v. 4.17.09
L'autenticazione di base è un modo per autenticarsi quando si effettuano chiamate all'API di gestione di Edge. Ad esempio, puoi inviare la seguente richiesta cURL all'API di gestione di Edge per accedere alle informazioni sulla tua organizzazione:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
In questo esempio, utilizzi 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 di gestione perimetrale. Ad esempio:
curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName
Dopo aver attivato SAML, puoi disattivare facoltativamente l'autenticazione di base. Se disattivi l'autenticazione di base, tutti gli script (script Maven, script shell, apigeetool
e così via) che si basano sulle chiamate dell'API di gestione di Edge che supportano l'autenticazione di base non funzionano più. Devi aggiornare le chiamate API e gli script che utilizzano l'autenticazione di base per trasmettere i token di accesso OAuth2 nell'intestazione Bearer.
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, lo aggiornerà e lo stamperà. Se il token di aggiornamento scade, verranno richieste le credenziali utente.
L'utilità get_token
archivia
i token sul disco, pronti per essere utilizzati quando necessario. Stampa anche un token di accesso valido su stdout.
Da qui, puoi utilizzare Postman o incorporarlo in una variabile di ambiente per utilizzarlo in curl.
La procedura seguente descrive come utilizzare get_token
per ottenere un token di accesso OAuth2 per effettuare chiamate all'API di gestione di Edge:
- Scarica il bundle
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 Edge. Se hai configurato TLS su Edge SSO, utilizza
https
e il numero di porta TLS corretto. - Estrai il bundle
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 Edge. Se hai configurato TLS su Edge SSO, utilizza
https
e il numero di porta TLS corretto. - 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 SSO perimetrale, utilizza
https
e il numero di porta TLS corretto.Questo URL restituisce un passcode una tantum che rimane valido finché non aggiorni l'URL per ottenere un nuovo passcode o non 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 di Edge. Ti viene chiesto di inserire il passcode monouso che hai 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 seguente formato:get_token -u emailAddress -p passcode
- Passa il token di accesso a una chiamata dell'API di gestione di Edge come intestazione Bearer:
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 recuperarlo e passarlo a una chiamata API in un unico comando, come mostrato di seguito:
header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
Con questa forma del comando, se il token di accesso è scaduto, viene aggiornato automaticamente fino alla scadenza del token di aggiornamento.
Una volta scaduto il token di aggiornamento, get_token
ti chiede un nuovo passcode. Devi visitare l'URL mostrato sopra nel passaggio 3 e generare un nuovo passcode prima di poter generare un nuovo token di accesso OAuth.
Utilizzo dell'API di gestione per recuperare e aggiornare i token
L'articolo Utilizzare la sicurezza OAuth2 con l'API di gestione Apigee Edge contiene istruzioni che mostrano come utilizzare l'API di gestione Edge per ottenere e aggiornare i token. Puoi anche utilizzare le chiamate API Edge per i token generati dalle asserzioni SAML.
L'unica differenza tra le chiamate API documentate in Utilizzare la sicurezza OAuth2 con l'API di gestione Apigee Edge è 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 precedente.
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 seguente chiamata 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'