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:
- 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. - Decomprimi il bundle
ssocli-bundle.zip
:unzip ssocli-bundle.zip
- Installa
get_token
in/usr/local/bin
:
./install
Utilizza l'opzione
-b
per specificare una località diversa:./install -b path
- 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. - 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. - 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
- 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'