Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
SAML supporta un ambiente Single Sign-On (SSO). Utilizzando SAML con Edge, puoi supportare l'SSO per l'interfaccia utente e l'API Edge, oltre a tutti gli altri servizi che fornisci e che supportano anche SAML.
Prerequisito: devi abilitare SAML per almeno un'organizzazione prima di poterlo utilizzare per accedere all'API Edge.
Differenze tra SAML e OAuth2
Una volta configurato SAML, il suo utilizzo è molto simile a quello di OAuth2 per accedere all'API Edge. Quando chiami l'API Edge, includi un token di accesso OAuth2 nella richiesta.
La differenza principale tra SAML e OAuth2 quando si accede all'API Edge è il modo in cui si ottengono i token. Con SAML, devi includere quanto segue quando ottieni la tua coppia di token:
- Zone: gli utenti di Edge per il cloud pubblico devono fare riferimento al nome della zona quando ottengono i token.
- Passcode: includi un passcode monouso quando richiedi una coppia di token di accesso/aggiornamento.
SAML utilizza gli stessi endpoint del servizio OAuth2 di 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 la procedura di generazione dei token per gli utenti macchina, come descritto in Automatizzare la procedura di generazione dei token.
Ottenere i token di accesso con get_token
Puoi utilizzare l'utilità get_token per scambiare le tue credenziali con i token di accesso e
di aggiornamento OAuth2 che utilizzi con SAML.
Per ottenere un token di accesso con get_token:
- Imposta la variabile di ambiente
SSO_LOGIN_URLsul tuo URL di accesso. L'URL di accesso ha il seguente formato:https://zoneName.login.apigee.com
Ad esempio, per una zona denominata "acme", imposta
SSO_LOGIN_URLsu "https://acme.login.apigee.com", come mostrato nell'esempio seguente:export SSO_LOGIN_URL=https://acme.login.apigee.com
- Chiama
get_tokenper 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 non hai eseguito l'accesso di recente tramite il tuo provider di identità, ti verrà chiesto di accedere.
Questo URL restituisce un passcode monouso che rimane valido finché non lo aggiorni per ottenere un nuovo passcode o finché non utilizzi il passcode con
get_tokenper generare un token di accesso. Ad esempio:
-
Inserisci il passcode. L'utilità
get_tokenottiene i token OAuth2, stampa il token di accesso sustdoute scrive i token di accesso e di aggiornamento in~/.sso-cli. - Chiama l'API Edge e passa il token di accesso nell'
Authorization: Bearerintestazione, come mostrato 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 recupera i dettagli dell'organizzazione specificata. Per un elenco completo degli endpoint dell'API di gestione, consulta il Riferimento API di Apigee Edge.
Quando il token di accesso scade, puoi chiamare get_token di nuovo per ottenere un nuovo token di accesso. Ad esempio:
get_token -u me@example.com
Non ti verrà chiesto un nuovo passcode finché non scade il token di aggiornamento.
Quando il token di aggiornamento scade, get_token ti chiede un nuovo passcode. Prima di poter generare un nuovo token di accesso OAuth2, devi
generare un nuovo passcode.
Ottenere i token di accesso con il servizio OAuth2 di Edge
Puoi utilizzare il servizio OAuth2 di Edge per ottenere i token di accesso che utilizzi con SAML. Per autenticarti con l'API Edge, utilizzi un passcode nella richiesta iniziale per ottenere una coppia di token di accesso/aggiornamento e di nuovo per ottenere una nuova coppia di token.
Per ottenere una coppia di token con l'API Edge:
- In un browser, vai 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 non hai eseguito l'accesso di recente tramite il tuo provider di identità, ti verrà chiesto di accedere.
Questo URL restituisce un passcode monouso che funge da credenziale per ottenere i token e rimane valido finché non aggiorni l'URL per ottenere un nuovo passcode. In alternativa, puoi utilizzare il passcode con
get_tokenper generare un token di accesso. Ad esempio:
- 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 credenziale per l'autorizzazione.
Dove:
- L'intestazione
Authorizationè "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (utilizza questo valore esatto). - Il tipo di richiesta è
POST. - Il corpo della richiesta contiene quanto segue:
grant_typeè "password".response_typeè "token".passcodedove passcode è il passcode restituito nel passaggio precedente.
La chiamata stampa i token di accesso e di aggiornamento sullo schermo.
- L'intestazione
Per aggiornare il token di accesso:
Invia una richiesta a https://zoneName.login.apigee.com/oauth/token,
come mostrato 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è "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (utilizza questo valore esatto). - Il tipo di richiesta è
POST.
Accedere all'API Edge con SAML
Puoi utilizzare strumenti come curl o l'utilità di convenienza di Apigee acurl
per
accedere all'API Edge.
Con curl, chiami l'API Edge e passi il token di accesso nell'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 devi specificare l'intestazione Authorization. Ad esempio:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
Questi esempi chiamano un endpoint dell'API Edge che recupera i dettagli dell'organizzazione specificata. Per un elenco completo degli endpoint dell'API Edge, consulta il Riferimento API di Apigee Edge.
Per altri metodi di chiamata dell'API, inclusi i modi per assicurarti che il token rimanga aggiornato, consulta Accedere all'API Edge con OAuth2.
Utenti macchina nelle zone SAML
Puoi utilizzare le utilità acurl e get_token per creare script di accesso automatico
alle API Edge per gli utenti macchina nelle zone SAML.
L'esempio seguente mostra come utilizzare get_token per richiedere un token di accesso e poi aggiungere il valore del token a una chiamata curl:
USER=me@example.comPASS=not-that-secretTOKEN=$(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 che a un utente macchina
venga chiesto un codice MFA. L'utilizzo del flag --force-basic-auth sostituisce la richiesta standard di un passcode attivata dalle richieste con le zone SAML.
In alternativa, puoi combinare la richiesta di token e la chiamata curl utilizzando l'utilità acurl.
Ad esempio:
USER=me@example.comPASS=not-that-secretacurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'