Utilizzo di SAML con l'API Edge Management

Edge per Private Cloud v. 4.17.09

L'autenticazione di base è un modo per eseguire l'autenticazione quando si effettuano chiamate all'API Edge Management. 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 scegliere se disabilitare l'autenticazione di base. se disabiliti l'autenticazione di base, (script Maven, script shell, apigeetool e così via) che si basano su Edge le chiamate API di gestione 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 L'utilità get_token accetta i tuoi le credenziali e stampa un token di accesso valido. Se un token può essere aggiornato, lo aggiornerà e stamparlo. Se il token di aggiornamento scade, richiederà le credenziali utente.

Negozi di pubblici servizi get_token i token sul disco, pronti all'uso 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 effettua chiamate API di 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 SSO perimetrale, utilizza https e il numero di porta TLS corretto.

  2. Decomprimi il bundle ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Installa get_token in /usr/local/bin:
    ./install

    Utilizza l'opzione -b per specificare una località diversa:

    ./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 su SSO perimetrale, 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 su SSO perimetrale, utilizza https e il numero di porta TLS corretto.

    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 accesso 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. Stai richiesto di inserire il passcode monouso ottenuto al 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 l'accesso OAuth2 il token di aggiornamento, lo stampa sullo schermo, lo scrive insieme al token di aggiornamento ~/.sso-cli.

    Puoi inserire il passcode nella riga di comando utilizzando una Comando get_token nel formato:

    get_token -u emailAddress -p passcode
  7. Passa il token di accesso a una chiamata 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 per la prima volta, puoi ottenere il token di accesso e passala a una chiamata API con un singolo 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 ti chiede un nuovo passcode. Tu deve andare all'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 Utilizzo della 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, illustrata nel passaggio 3 della procedura descritta sopra.

Ad esempio, 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'

Per l'autorizzazione, passa una credenziale client OAuth2 riservata nel Authorization intestazione. 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'