Utilizza SAML con l'API Edge Management

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 all'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 di 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, ti verrà chiesto di inserire le credenziali utente.

L'utilità get_token archivia i token su disco, pronti per essere utilizzati 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:

  1. 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 perimetrale. Se hai configurato TLS sull'SSO Edge, utilizza https e il numero di porta TLS corretto.

  2. Decomprimi il pacchetto ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Installa get_token in /usr/local/bin:
    > ./install. Utilizza l'opzione -b per specificare un percorso diverso: > ./install -b path
  4. 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 sull'SSO Edge, utilizza https e il numero di porta TLS corretto.
  5. In 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.

    Nota: se il tuo provider di identità non ha eseguito l'accesso, ti verrà chiesto di farlo.

    Questo URL restituisce un passcode una-tantum che rimane valido finché non aggiorni l'URL per ottenere un nuovo passcode oppure utilizzi il passcode con get_token per generare un token di accesso.
  6. 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 una tantum ottenuto al passaggio 3:
    One Time Code ( richiedine uno all'indirizzo https://edge_sso_IP.com/passcode)
    Inserisci il passcode se SAML è abilitato o premi INVIO:


    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 formato:
    > get_token -u emailAddress -p passcode
  7. Passa il token di accesso a una chiamata all'API Edge Management 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,


Alla scadenza del token di aggiornamento, get_token ti chiede di inserire un nuovo passcode. Devi accedere all'URL mostrato sopra nel passaggio 3 e generare un nuovo passcode prima di poter generare un nuovo token di accesso OAuth

Usare l'API di gestione per ricevere 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 i token generati dalle asserzioni SAML.

L'unica differenza tra le chiamate API documentate in Utilizzo della sicurezza OAuth2 con l'API di gestione Apigee Edge è che l'URL della chiamata deve fare riferimento al nome della 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 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'