L'autenticazione di base è un modo per autenticarsi quando si effettuano chiamate all'API di gestione di Edge.
Ad esempio, puoi effettuare 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 Edge, come mostrato nell'esempio seguente:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
Dopo aver abilitato un IDP esterno per l'autenticazione, puoi facoltativamente disabilitare l'autenticazione di base. Se disattivi l'autenticazione di base, tutti gli script (come Maven, shell e apigeetool) che si basano sulle chiamate API di gestione di Edge 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
Bearer.
Ottieni e aggiorna i token con get_token
L'utilità get_token scambia le tue credenziali di autenticazione di base (e in alcuni casi un passcode) con un token di accesso e un token 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, verranno richieste le credenziali dell'utente.
L'utilità get_token archivia i token sul disco, pronti per essere utilizzati quando necessario. Inoltre, stampa un token di accesso valido su stdout. Da qui, puoi utilizzare un'estensione del browser come Postman o incorporarla in una variabile di ambiente da utilizzare in curl.
Per ottenere un token di accesso OAuth2 per effettuare chiamate API di gestione 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 o il nome DNS della macchina che ospita il modulo SSO Apigee. Se hai configurato TLS su SSO Apigee, utilizza
httpse il numero di porta TLS corretto. - Decomprimi il bundle
ssocli-bundle.zip, come mostrato nell'esempio seguente:unzip ssocli-bundle.zip
- Installa
get_tokenin/usr/local/bin, come mostrato nell'esempio seguente:./install -b path
L'opzione
-bspecifica una località diversa. - Imposta la variabile di ambiente
SSO_LOGIN_URLsul tuo 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 SSO Apigee, utilizza
httpse il numero di porta TLS corretto. - (Solo SAML) In un browser, vai al seguente URL per ottenere un passcode monouso:
http://edge_sso_IP_DNS:9099/passcode
Se hai configurato TLS su SSO Apigee, utilizza
httpse il numero di porta TLS corretto.Questa richiesta restituisce un passcode monouso che rimane valido finché non aggiorni l'URL per ottenere un nuovo passcode o non utilizzi il passcode con
get_tokenper generare un token di accesso.Tieni presente che puoi utilizzare un passcode solo quando esegui l'autenticazione con un IdP SAML. Non puoi utilizzare un passcode per l'autenticazione con un IDP LDAP.
- Richiama
get_tokenper ottenere il token di accesso OAuth2, come mostrato nell'esempio seguente:get_token -u emailAddress
Dove emailAddress è l'indirizzo email di un utente Edge.
(Solo SAML) Inserisci il passcode nella riga di comando oltre all'indirizzo email, come mostrato nell'esempio seguente:
get_token -u emailAddress -p passcode
L'utilità
get_tokenottiene il token di accesso OAuth2, lo stampa sullo schermo e lo scrive insieme al token di aggiornamento in~/.sso-cli. - Passa il token di accesso a una chiamata API di gestione Edge come intestazione
Bearer, come mostrato nell'esempio seguente: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 nell'esempio seguente:
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.
(Solo SAML) Alla scadenza del token di aggiornamento, get_token ti chiede un nuovo passcode. Devi
andare all'URL mostrato sopra nel passaggio 3 e generare un nuovo passcode prima di poter generare
un nuovo token di accesso OAuth.
Utilizza l'API di gestione per ottenere e aggiornare i token
Utilizza la sicurezza OAuth2 con l'API di gestione di Apigee Edge mostra come utilizzare l'API di gestione di Edge per ottenere e aggiornare i token di aggiornamento. Puoi anche utilizzare le chiamate API Edge per ottenere i token generati dalle asserzioni SAML.
L'unica differenza tra le chiamate API documentate in Utilizzo della sicurezza OAuth2 con l'API di gestione di Apigee Edge è che l'URL della chiamata deve fare riferimento al nome della 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 e di 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'
(SAML) Utilizza la seguente chiamata API per generare i token di accesso e di 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 no.
Aggiorna un token di accesso
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'