Accedere all'API Edge con SAML

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

SAML supporta un ambiente Single Sign-On (SSO). Se usi SAML con Edge, puoi supportare l'accesso SSO per l'API e l'interfaccia utente Edge, oltre a qualsiasi altro servizio fornito dall'utente e che supporta SAML.

Prerequisito: devi attivare SAML per almeno un'organizzazione prima di utilizzarla per accedere all'API Edge.

Differenze tra SAML e OAuth2

Dopo aver configurato il protocollo SAML, il suo utilizzo è molto simile all'utilizzo di OAuth2 per accedere l'API Edge. Quando chiami l'API Edge, includi un token di accesso OAuth2 la tua richiesta.

La differenza principale tra SAML e OAuth2 quando si accede all'API Edge è nel modo ottieni dei token. Con SAML, devi includere quanto segue quando ricevi i tuoi coppia di token:

  1. Zone: gli utenti Edge per il cloud pubblico devono fare riferimento al nome della propria zona quando ricevono i token.
  2. Passcode:includi un passcode monouso quando richiedi l'accesso o l'aggiornamento. di token.

SAML utilizza gli stessi endpoint sul servizio OAuth2 Edge, con l'aggiunta del nome della zona appropriato.

Per ottenere i token di accesso con SAML, puoi utilizzare uno dei seguenti metodi, descritti in questa sezione:

Inoltre, puoi automatizzare il processo di generazione dei token per gli utenti delle macchine, come descritto in Automatizzare il processo di generazione dei token.

Recuperare i token di accesso con get_token

Puoi utilizzare l'utilità get_token per scambiare le tue credenziali per l'accesso OAuth2 e i token di aggiornamento che usi con SAML.

Per ottenere un token di accesso con get_token:

  1. Imposta la variabile di ambiente SSO_LOGIN_URL sull'URL di accesso. L'URL di accesso contiene il seguente modulo:
    https://zoneName.login.apigee.com

    Ad esempio, per una zona denominata "acme", imposta SSO_LOGIN_URL su "https://acme.login.apigee.com", come illustrato nell'esempio seguente:

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. Chiama get_token per ottenere il token di accesso OAuth2:
    get_token -u me@example.com

    Ti viene chiesto di visitare l'URL visualizzato per ottenere un passcode monouso:

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    Se di recente non hai eseguito l'accesso tramite il tuo provider di identità, ti verrà chiesto di farlo in.

    Questo URL restituisce un passcode monouso che rimane valido finché non lo aggiorni in ottenere un nuovo passcode oppure usarlo con get_token per generare un token di accesso. Ad esempio:

  3. Inserisci il passcode. L'utilità get_token ottiene i token OAuth2, stampa il token di accesso in stdout e scrive i token di accesso e di aggiornamento a ~/.sso-cli.

  4. Chiama l'API Edge e passa il token di accesso nel Authorization: Bearer come illustrato nell'esempio seguente:
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    Il valore del token di accesso può essere copiato da stdout.

    Questo esempio fornisce i dettagli dell'organizzazione specificata. Per un elenco completo dei processi di gestione Per gli endpoint API, consulta la pagina Riferimento API Apigee Edge.

Quando il token di accesso scade, puoi chiamare di nuovo get_token per ottenere un nuovo accesso di accesso. Ad esempio:

get_token -u me@example.com

Non ti verrà richiesto un nuovo passcode fino alla scadenza del token di aggiornamento.

Alla scadenza del token di aggiornamento, get_token ti chiede un nuovo passcode. Devi generare un nuovo passcode prima di poter generare un nuovo token di accesso OAuth2.

Recuperare i token di accesso con il servizio OAuth2 Edge

Puoi utilizzare il servizio OAuth2 Edge per ottenere i token di accesso che utilizzi con SAML. Per l'autenticazione con l'API Edge, durante la richiesta iniziale utilizzi un passcode per ottenere l'accesso o l'aggiornamento e di nuovo per ottenere una nuova coppia di token.

Per ottenere una coppia di token con l'API Edge:

  1. In un browser, accedi al seguente URL per ottenere un passcode monouso:
    https://zoneName.login.apigee.com/passcode

    Ad esempio, per una zona denominata "acme", vai al seguente URL:

    https://acme.login.apigee.com/passcode

    Se di recente non hai eseguito l'accesso tramite il tuo provider di identità, ti verrà chiesto di farlo in.

    Questo URL restituisce un passcode monouso che funge da credenziale per ricevere i token e che rimane valido finché non aggiorni l'URL in ottenere un nuovo passcode oppure puoi usarlo con get_token per generare un token di accesso. Ad esempio:

  2. Invia una richiesta all'API Edge, come mostrato nell'esempio seguente:
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    Il passcode funge da tue credenziali per l'autorizzazione.

    Dove:

    • L'intestazione Authorization è "Base ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (usa questo valore esatto).
    • Il tipo di richiesta è POST.
    • Il corpo della richiesta contiene quanto segue:
      • grant_type è "password".
      • response_type è "token".
      • passcode dove passcode è il passcode restituito nel passaggio precedente.

    La chiamata stampa i token di accesso e di aggiornamento sullo schermo.

Per aggiornare il token di accesso:

Invia una richiesta a https://zoneName.login.apigee.com/oauth/token, come illustrato nell'esempio seguente:

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

Dove:

  • Il corpo della richiesta contiene quanto segue:
    • grant_type è "refresh_token".
    • refresh_token è il valore del token di aggiornamento.
  • L'intestazione Authorization è "Base ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (usa questo valore esatto).
  • Il tipo di richiesta è POST.

Accedi all'API Edge con SAML

Puoi utilizzare strumenti come curl o la praticità di Apigee acurl a per accedere all'API Edge.

Con curl, chiami l'API Edge e passi il token di accesso nella Intestazione Authorization: Bearer, come mostrato nell'esempio seguente:

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

Con acurl, non è necessario specificare l'intestazione Authorization. Ad esempio:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

Questi esempi chiamano un endpoint API Edge che ottiene i dettagli sull'organizzazione specificata. Per un elenco completo degli endpoint API Edge, consulta la documentazione di riferimento sulle API Apigee Edge.

Per ulteriori metodi di chiamata all'API, inclusi modi per garantire che il token rimanga vedi Accedere all'API Edge con OAuth2.

Utenti di macchine nelle zone SAML

Puoi utilizzare le utilità acurl e get_token per creare uno script dell'accesso automatico alle API Edge per gli utenti della macchina nelle zone SAML. L'esempio seguente mostra come usa get_token per richiedi un token di accesso e quindi aggiungi il valore del token a una chiamata curl:

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

Nell'esempio precedente, l'impostazione del valore di -m su una stringa vuota impedisce all'utente di una macchina non venga richiesto un codice MFA. L'utilizzo del flag --force-basic-auth sostituirà la richiesta standard di un passcode attivato dalle richieste con zone SAML.

In alternativa, puoi combinare la richiesta di token e la chiamata curl utilizzando l'utilità acurl. Ad esempio:

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'