Utilizza un IdP esterno 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 di gestione perimetrale per accedere informazioni sulla tua organizzazione:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

In questo esempio viene utilizzata l'opzione curl -u per superare l'autenticazione di base. e credenziali. In alternativa, puoi passare un token OAuth2 nell'intestazione Bearer per Chiamate API di Edge Management, come mostrato nell'esempio seguente:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Dopo aver attivato un IdP esterno per l'autenticazione, puoi facoltativamente disattivare la versione di base autenticazione. Se disattivi Basic l'autenticazione, tutti gli script (come Maven, shell e apigeetool) che fare affidamento sulle chiamate API di gestione perimetrale che supportano l'autenticazione di base non funzionano più. Devi aggiornare eventuali chiamate API e script che utilizzano l'autenticazione di base per passare i token di accesso OAuth2 Intestazione Bearer.

Recupero e aggiornamento dei token con get_token

L'utilità get_token scambia le credenziali di autenticazione di base (e, in alcuni casi, una passcode) per un token di accesso e aggiornamento OAuth2. L'utilità get_token accetta i tuoi credenziali e restituisce un token di accesso valido. Se un token può essere aggiornato, l'utilità aggiorna e la restituisce. Se il token di aggiornamento scade, richiederà le credenziali utente.

L'utilità get_token archivia i token su disco, pronti all'uso quando necessario. it stampa anche un token di accesso valido su stdout. Da qui puoi utilizzare un'estensione del browser come Postman o incorporalo in una variabile di ambiente da utilizzare in curl.

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 o il nome DNS della macchina che ospita Modulo SSO di Apigee. Se hai configurato TLS su Apigee SSO, utilizza https e il token corretto Numero di porta TLS.

  2. Decomprimi il bundle ssocli-bundle.zip, come mostrato nell'esempio seguente:
    unzip ssocli-bundle.zip
  3. Installa get_token in /usr/local/bin, come mostrato nell'esempio seguente:
    ./install -b PATH

    L'opzione -b specifica una località diversa.

  4. Imposta la variabile di ambiente SSO_LOGIN_URL sull'URL di accesso, nel seguente modo modulo:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    Dove EDGE_SSO_IP_DNS è l'indirizzo IP della macchina che ospita l'accesso SSO di Apigee in maggior dettaglio più avanti in questo modulo. Se hai configurato TLS su Apigee SSO, utilizza https e la porta TLS corretta numero.

  5. (Solo SAML) In un browser, vai al seguente URL per ottenere una richiesta una tantum passcode:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Se hai configurato TLS su Apigee SSO, utilizza https e la porta TLS corretta numero.

    Questa richiesta restituisce un passcode monouso che rimane valido finché non aggiorni l'URL in ottenere un nuovo passcode o utilizzarlo con get_token per generare un token di accesso.

    Tieni presente che puoi utilizzare un passcode solo durante l'autenticazione con un IdP SAML. Non puoi utilizzare un passcode per eseguire l'autenticazione con un IdP LDAP.

  6. Richiama get_token per ottenere il token di accesso OAuth2, come mostrato nell'esempio seguente:
    get_token -u EMAIL_ADDRESS

    Dove EMAIL_ADDRESS è l'indirizzo email di un utente Edge.

    (Solo SAML) Inserisci il passcode nella riga di comando oltre all'email come mostrato nell'esempio seguente:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    L'utilità get_token ottiene il token di accesso OAuth2 e lo stampa e lo scrive insieme al token di aggiornamento in ~/.sso-cli.

  7. Passa il token di accesso a una chiamata API di gestione Edge come intestazione Bearer, come illustrato nell'esempio seguente:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. Dopo aver ricevuto un nuovo token di accesso per la prima volta, puoi riceverlo e passarla a una chiamata API con un singolo comando, come illustrato nell'esempio seguente:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    Con questo modulo del comando, se il token di accesso è scaduto, viene automaticamente aggiornate fino alla scadenza del token di aggiornamento.

(Solo SAML) Dopo la scadenza del token di aggiornamento, get_token ti chiede un nuovo passcode. Tu deve accedere all'URL riportato 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 scaricare e aggiornare token

Utilizzare OAuth2 con l'API di gestione Apigee Edge, mostra come utilizzare API Edge Management per ottenere e aggiornare token. Puoi anche usare le chiamate API Edge per ottenere i token generati dalle asserzioni SAML.

L'unica differenza tra le chiamate API documentate in Utilizzo di OAuth2 con l'API Apigee Edge Management è che l'URL della chiamata deve fare riferimento al tuo 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 nel Authorization intestazione. 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 l'accesso iniziale e aggiornare di token:

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 \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) Utilizza la seguente chiamata API per generare l'accesso iniziale e aggiornare di token:

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 al contrario.

Aggiornare 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=REFRESH_TOKEN'