Utilizzo del servizio Edge OAuth2 per ricevere token

Stai visualizzando la documentazione di Apigee Edge.
Visualizza la documentazione di Apigee X.

Puoi utilizzare il servizio Edge OAuth2 per scambiare le tue credenziali con un token di accesso e di aggiornamento, da utilizzare poi per chiamare gli endpoint Edge nei flussi di lavoro OAuth.

Oltre alle tecniche descritte in questa sezione, puoi anche utilizzare le utilità acurl e get_token per ottenere i token OAuth2.

Percorso

POST https://login.apigee.com/oauth/token

Se accedi al servizio Edge OAuth2 da un'organizzazione abilitata per SAML in Edge per il cloud pubblico, devi includere il nome della zona nel tuo percorso. Ad esempio:

POST https://zone.login.apigee.com/oauth/token

Intestazioni delle richieste

Parametro Valore
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;charset=utf-8"
Authorization

"ZWRnZWNsaTplZGdlY2xpc2VjcmV0" di base

Puoi esportare questo valore in una variabile di ambiente per poterlo riutilizzare in queste chiamate API. Ad esempio:

export CLIENT_AUTH=ZWRnZWNsaTplZGdlY2xpc2VjcmV0
curl ... -H "Authorization: Basic $CLIENT_AUTH" ...

Parametri modulo

Parametro Campo obbligatorio? Valore
username Facoltativo. Sono necessari una combinazione di nome utente e password o un passcode. Il tuo nome utente Apigee, che di solito è l'indirizzo email associato al tuo account Apigee.
password Facoltativo. Sono necessari una combinazione di nome utente e password o un passcode. La password dell'account Apigee.
mfa_token Facoltativo Un codice di autenticazione a più fattori (MFA) valido per il tuo account. Obbligatorio solo se hai attivato la MFA.
passcode Facoltativo. Sono necessari una combinazione di nome utente e password o un passcode. Un passcode una tantum che puoi utilizzare al posto di una password. L'autenticazione con un IdP SAML è obbligatoria e può essere utilizzata per eseguire l'autenticazione con un IdP LDAP.
grant_type Obbligatorio

Determina se ricevi un nuovo token di accesso o se aggiorni il token esistente. I valori validi sono:

  • "password": ottieni un nuovo token di accesso. Quando grant_type è "password", devi includere le credenziali Apigee nella richiesta.
  • "update_token": invia un token di aggiornamento per ottenere un nuovo token di accesso. Quando grant_type è "Refresh_token", non è necessario includere le credenziali nella richiesta.
refresh_token Facoltativo Il token trasmesso per ottenere un nuovo token di accesso quando il token di accesso corrente è scaduto. Questo parametro è obbligatorio quando grant_type è "update_token".

Esempi

Ottenere un nuovo token di accesso

Per ricevere un nuovo token di accesso, imposta grant_type su "password":

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://login.apigee.com/oauth/token \
      -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

Ottenere un nuovo token di accesso con MFA

Per ottenere un nuovo token di accesso con l'MFA (autenticazione a più fattori) abilitato, recupera il codice MFA e poi imposta il parametro mfa_token sul suo valore:

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://login.apigee.com/oauth/token?mfa_token=424242 \
  -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

Aggiorna un token di accesso

Per aggiornare un token di accesso, imposta grant_type su " refresh_token" e aggiungi il token di aggiornamento esistente come parametro del modulo:

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://login.apigee.com/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN'

Tieni presente che non è necessario trasferire le credenziali quando aggiorni il token di accesso.

Risposte

In caso di esito positivo, riceverai un token di accesso, un token di aggiornamento e le informazioni correlate. Ad esempio:

{
  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOimYyD8IP2IyYS1jNmNiLTQ4NTgtYjZkMS1mZjkyNGFkYTk1YWUiLCJzdWIiOiI0X0KLSNjZlNjM0ZC0zZjlhLTRiNYmFjNi1kYjE2M2M5OGEzOGYiLCJzY29wZSI6WyJzYbmlkIiwicGFzc3dvcmQud3JpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsImNpZCI6ImVkZ2VjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iYWM2LWRiMTYzYzk4YTM4ZiIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoid3dpdG1hbkBhcGlnZWUuY29tIiwiZW1haWwiOiJ3d2l0bWFuQGFwaWdlZS5jb20iLCJhdXRoX3RpbWUiOjE0NzMyNjU4NzcsImFsIjoyLCJyZXZfc2lnIjoiZTc0ZGY0M2QiLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3MzI2NzY3NywiaXNzIjoiaHR0cHM6Ly9sb2dpbi5hcGlnZWUuY29tL29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwi2ltLm1lIiwib3BlYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.AFuevkeGGUGSPED8leyEKaT-xg1xk_VEiKJLEpipVvQBXIqEc9wqcpm-ZuoatA9DhjASRuFSRaHH8Fasx_vBxEBsUNhRY-GTMw7_8fv4yRMOb2AO3WUl_NWwPkC8XRSI1zCMbAZicojsJ1n3OSP487Mu9dl9ByX5A_QfHV2_cj4l9-SD7u6vOdfdbBxbNMAQkfZLrVIEU8myF2dhKnNeMiuoHSHANsQFcx0_BFA1HnSUnVi4RYj1FlTs9SbcPnS1d7t7eVdxWz_q2OFVXNIBMELAvvM0WhXPYTW3Osve3UvvUs6ekGs-K-RCPSok-4-NJbdCDpZQQTgqHsrf77NTsw",
  "token_type": "bearer",
  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZTIIMZWI0ZS00YzFmLTRjOTEtYmY5Mi1mMzZLEMzNjZhMDctciIsInN1YiI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iY17LLWRiMTYzYzk4YTM4ZiIsInNjb3BlIjpbInNjaW0ubWUiLCJvcGVuaWQiLCJwYXNzd29yZC53cml0ZSIsImFwcHJvdmFscy5tZSIsIm9hdXRoLmFwcHJvdmFscyJdLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3NsaSIsImNsaWVudF9pZCI6ImVkZ2VjbGkiLCJpc3MiOiJodHRwczovL2xvZ2luLmFwaWdlZS5jb20vb2F1dGgvdG9rZW4iLCJ6aWQiOiJ1YWEiLCJncmFudF90eXBlIjoicGFzc3dvcmQiLCJ1c2VyX25hbWUiOiJ3d2l0bWFuQGFwaWdlZS5jbMzM1MDQ3NywiY2lkIjoiZWRnZW20iLCJvcmlnaW4iOiJ1c2VyZ3JpZCIsInVzZXJfaWQiOiI0NjZlNjM0ZC0zZjlhLTRiNDEtYmFjNi1kYjE2M2M5OGEzOGYiLCJhbCI6MiwicmV2X3NpZyI6ImU3NGRmNDNkIiwiYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.kBP5AkbRS7Tnp-5VAfTLVfkUbUer4gFEU6A7g202KTKiXbqTwPSmOIGFTK12XevVPQYmAaSMFAnempWKfY7sjaY7HC7q3mGl53_A18cnkKhtNq15wCnyMom_bX_MYLW1RQPFytJ6akSJ-JkoPFU0x_FQg1JIvub1A8eqQxcR0KP-QRCxYAS4HTjH80vDIxHNt1tg7clmpa3RlHri0dlPVVsSpTXXhkpXRg5QbiWMrpkACSV22c0x0KiNu7vx5A520VOCO7hQ7IzmVIcSWcRqI97L7WdCjH_q4105bs2qmW73670MC0UGiJ9t5B1S1cxwqpUEd-NAuCsY8SVn6eWzbA",
  "expires_in": 1799,
  "scope": "scim.me openid password.write approvals.me oauth.approvals",
  "jti": "9bf2cb2a-c6cb-4858-b6d1-ff924ada95ae"
}

Salva i valori della risposta:

  • Utilizza access_token nelle chiamate all'API Edge
  • Utilizza il token refresh_token quando il token di accesso scade e devi aggiornarlo

Se ricevi una risposta come la seguente:

{
  "error": "unauthorized",
  "error_description": "Bad credentials"
}

Assicurati di aver utilizzato la stringa esatta fornita sopra ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") per l'intestazione Authorization nella richiesta.