Utilizzo di SAML con l'API Edge Management

Edge per Private Cloud v4.18.01

L'autenticazione di base è un modo per autenticarsi quando si effettuano chiamate all'API di gestione di Edge. Per 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, viene utilizzata l'opzione cURL -u per passare le credenziali di autenticazione di base. In alternativa, può passare un token OAuth2 nell'intestazione Bearer per rendere l'API Edge Management chiamate. 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 script che utilizzano l'autenticazione di base per passare i token di accesso OAuth2 nell'intestazione Bearer.

Utilizzo di get_token per ottenere e aggiornare i token

Utilità get_token scambia le credenziali di autenticazione di base e un passcode per un token di accesso e di aggiornamento OAuth2. La get_token accetta i tuoi le 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 su disco, pronti per essere utilizzati quando necessario. Stampa anche un token di accesso valido su stdout. Quindi, 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 all'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 Edge. Se hai configurato TLS su Edge SSO, utilizza https e il numero di porta TLS corretto.
  2. Decomprimi il file ssocli-bundle.zip gruppo:
    &gt; decomprimere ssocli-bundle.zip
  3. Installa get_token in /usr/local/bin:
    > ./install Utilizza l'opzione -b per specificare una posizione diversa: > ./install -b percorso
  4. Imposta la variabile di ambiente SSO_LOGIN_URL sul 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 del nome DNS della macchina che ospita il modulo SSO di Edge. Se hai configurato TLS sul servizio SSO perimetrale, utilizza https e il numero di porta TLS corretto.
  5. 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 Edge SSO, utilizza https e il numero di porta TLS corretto.

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

    Questo URL restituisce un passcode monouso che rimane valido finché non lo aggiorni per ottenere un nuovo passcode oppure utilizza quello con get_token per generare un token di accesso.
  6. Richiama get_token per ottenere il token di accesso OAuth2:
    &gt; get_token -u emailAddress

    dove emailAddress è l'indirizzo email di un utente Edge. Stai richiesto di inserire il passcode monouso ottenuto al passaggio 3:
    Codice monouso ( per riceverne uno su) https://edge_sso_IP.com/passcode )
    Se SAML è attivato, inserisci il passcode 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:
    &gt; get_token -u emailAddress -p passcode
  7. Passa il token di accesso a una chiamata 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 ottenerlo 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.

Dopo la scadenza del token di aggiornamento, get_token richiede 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 token

Utilizzo di OAuth2 con l'API di gestione Apigee Edge, contiene istruzioni che mostrano come utilizzare API Edge Management per ottenere e aggiornare 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 Apigee Edge Management è che l'URL della chiamata deve fare riferimento alla tua zona nome. 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 sullo schermo i token di accesso e di aggiornamento.

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'